四、循环结构1-while循环 假如要你在屏幕上重复输出10次Hello World,你会怎么做?简单,把下面的代码拷贝10份就行了。 1 printf("Hello Worldn"); 没错,把上次代码写10遍,确实能实现功能。但是这样的代码太垃圾了,有很多的重复的代码,这样会使得代码非常地臃肿,复用率低。因此,不建议这么做。 下次遇到像上面那样重复执行某个操作时,首先要想到的应该是循环结构。所谓循环,就是重复执行某一个操作,C语言中有多种方式可以实现循环结构。先来看看while循环。 1.形式 1 while ( 条件 )
2 {
3 语句1;
4 语句2;
5 ....
6 } 如果条件成立,就会执行循环体中的语句(“循环体”就是while后面大括号{}中的内容)。然后再次判断条件,重复上述过程,直到条件不成立就结束while循环 while循环的特点:如果while中的条件一开始就不成立,那么循环体中的语句永远不会被执行 可以省略大括号{},但是只会影响到while后面的第一条语句。不建议省略大括号。 1 while ( 条件 )
2 语句1; 2.举例 在屏幕上重复输出10次Hello World,每输出一次的换行。 1 int count = 0;
2 while ( count < 10 )
3 {
4 printf("Hello Worldn");
5
6 count ;
7 } 如果省略第6行的count ,count就一直是0,那么count<10一直都是成立的,这个while循环将会陷入“死循环”,一直在重复执行第4行代码。 3.注意 如果写成下面这样,也会让程序进入“死循环” 1 int count = 0;
2
3 while ( count < 10 );
4 {
5 printf("Hello Worldn");
6
7 count ;
8 } 注意第3行,while后面不小心加了个分号; ,一个分号表示一条空语句。 可以看出:while循环只会影响到第3行的空语句,而第4~8行的代码块是不受while循环影响的 由于count是0,那么count<10一直都是成立的,程序将会一直重复执行第3行的空语句,陷入死循环。
五、循环结构2-do while循环 形式如下: 1 do {
2 语句1;
3 语句2;
4 ...
5 } while (条件); 注意第5行,后面是加上一个分号;的 当执行到do-while循环时,首先会执行一遍循环体中的语句(“循环体”就是do后面大括号{}中的内容)。接着判断while中的条件,如果条件成立,就执行循环体中的语句。然后再次判断条件,重复上述过程,直到条件不成立就结束while循环 do-while循环的特点:不管while中的条件是否成立,循环体中的语句至少会被执行一遍 其实do while循环的用法跟while循环是差不多的,这里就不举例子了。
六、循环结构3-for循环 1.形式 for循环是所有循环结构中最复杂的。 1 for (语句1; 条件; 语句2) {
2 语句3;
3 语句4;
4 ...
5 } for循环开始时,会先执行语句1,而且在整个循环过程中只执行一次语句1 接着判断条件,如果条件成立,就会执行循环体中的语句(“循环体”就是for后面大括号{}中的内容) 循环体执行完毕后,接下来会执行语句2,然后再次判断条件,重复上述过程,直到条件不成立就结束for循环 2.举例 1 for (int i = 0; i<5; i )
2 {
3 printf("%d ", i);
4 } 输出结果为: 0 1 2 3 4 需要注意的是:变量i的作用域是第1~4行。一旦离开了这个for循环,变量i就失效了。 3.补充 如果for循环的初始化语句和循环一次后执行的语句是由多条语句组成的,就用逗号,隔开 1 for (int x = 0, y =0; x<3; x , y =2) 2 { 3 printf("x=%d, y=%d n", x, y); 4 } 输出结果: x=0, y=0 x=1, y=2 x=2, y=4