C语言基础

    返回首页    发表留言
本文作者:李德强
          第五节 for语句
 
 

一、for循环语句

         在本节中我们来一起学习另一种循环方式,它叫for语句。for语句的语法如下:

for (初始语句; 条件表达式; 每次循环后执行语句)
{
    printf("%d\n", day);
}

         在for语句中后的小括号中一共有三部分内容,每个部分用分号;隔开。

第一部分为初始化语句,当程序执行for语句时首先执行此语句,并且只执行一次,与条件表达式是否成立无关。

第二部分为条件表达式,当条件表达式成立时,即其结果为真时,程序循环执行大括号中的循环体。

第三部分为每次循环后执行语句,此部分语句在每次循环时都会执行。

        for语句其实跟while循环相比并没有本质的区别,只不过在形式上更简洁一些,例如在上节中我们编写的关于while循环显示1到31这样的程序:

int day = 1;
while (day <= 31)
{
	printf("%d\n", day);
	day++;
}

 

        而下面我们将实现一个使用for语句的循环程序,功能与上面程序一样:

 

int day;
for (day = 1; day <= 31; day++)
{
    printf("%d\n", day);
}

        在for循环语句中首先将day的值置成1,然后根据条件表达式结果进行判断,当条件表达式的值为真时,执行循环体中的内容,即调用printf函数显示day的值。每当执行一交循环后,都要执行小括号中最后一部分内容day++。

        于是上面程序在执行了31次之后day的值变为32,条件表达式day <= 31结果为假,结束循环。


二、循环嵌套

        对于已经学过的三种循环语句来说,都可以进行循环嵌套,也就是说一个while语句的循环体中嵌入一个子while循环语句,do while循环体中嵌入do while子循环,同样for循环中也可以嵌入for子循环。其实,循环嵌套可以任意使用,例如在while中嵌入do while,并在这个do while中再嵌入一个for循环,都是可以的。为了让读者更好的理解我们先来编写一个for循环配合使用if语句显示一月的日期,每显示7天就进行一次换行:

int day;
for (day = 1; day < 31; day++)
{
	printf("%3d", day);
	if (day % 7 == 0)
	{
		printf("\n");
	}
}

  1  2  3  4  5  6  7
  8  9 10 11 12 13 14
 15 16 17 18 19 20 21
 22 23 24 25 26 27 28
 29 30

        当然,这个显示日期的程序并没有考虑太多细节问题,例如没有考虑闰年、月份和星期之间的关系,不过已经可以很好的说明在for循环中嵌套if语句的方法了。我们再来用for语句的双循环来实现一个显示9x9乘法表的程序:

int i, j;
for (i = 1; i <= 9; i++)
{
	for (j = 1; j <= i; j++)
	{
		printf("%dx%d=%-3d", i, j, i * j);
	}
	printf("\n");
}

1x1=1  
2x1=2  2x2=4  
3x1=3  3x2=6  3x3=9  
4x1=4  4x2=8  4x3=12 4x4=16 
5x1=5  5x2=10 5x3=15 5x4=20 5x5=25 
6x1=6  6x2=12 6x3=18 6x4=24 6x5=30 6x6=36 
7x1=7  7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49 
8x1=8  8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64 
9x1=9  9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81 
    返回首页    返回顶部
  看不清?点击刷新

 

  Copyright © 2015-2018 问渠网 辽ICP备15013245号