循环控制语句
循环语句在底层与条件语句类似,区别是在条件为true时,执行完所有语句后,会有一个跳转指令跳回到条件判断,而条件为false时的跳转会直接跳过循环末尾的跳转指令。
while语句
while语句与if语句类似
#include<iostream>using namespace std;//while语句int main(){int i = 0 ;while ( i < 10 ){cout << "输出数字: " << i <<endl;i++;}return 0 ;}
运行结果:
示例中的循环执行了10次,打印了0-9这10个数字,最后在i=10,的时候因为条件不满足而结束。和if语句一样,while也可以不在条件后面加花括号,但是循环体中就至多只会有一个语句(所谓循环体,就是条件为true时,才会执行的语句)。
do…while语句
do…while语句和while语句相对,条件判断处于循环体之后。
#include<iostream>using namespace std;//do...while 语句int main(){int i = 0 ;do {cout << "输出数字:" << i << endl;i++;}while (i <10 );return 0;}
运行结果:
示例展示了do…while语句的基本用法,其输出结果与while语句完全相同。do…while语句的行为基本与while语句一致,区别是do后面的代码会被执行至少一次,而且语句的最后要加上分号,在实际编程中因为do…while一般都可以转换为while,我们比较少见到他但是我们也要知道它与while语句的区别。
while语句与do…while语句不一致的地方
#include <iostream>using namespace std;//do...while与while行为不一致的情况int main(){int i = 0 ;cout << "while语句" << endl;while ( i < 0 ){cout << "输出数字:" << i << endl;i++;}cout << "do...while语句" << endl;do {cout << "输出数字" << i << endl;i++;}while ( i < 0 );return 0 ;}
**运行结果为: **
示例将之前的条件改成了i<0,由于do…while的条件判断在最后,因此就算i并不小于0,程序也会打印一次。
for语句
for语句或者是for循环是最常见的也是复杂的一种循环。
在熟练掌握其语法后,对于一般类似与打印1到N的数字的程序我们都可以快速的写出。
for 语句的基本用法
#include <iostream>using namespace std;//for语句基本用法int main(){for (int i = 0; i < 10 ; i++){cout << "输出数字:" << i << endl;}return 0;}
运行结果:
for语句的条件部分由三个语句组成,其中只有第二个语句是条件判断。第一个语句是赋值语句,可以直接定义新的变量,也可以直接定义新的变量,也可以给循环外定义的变量重新赋值。一般来说我们把这个变量当作计数器,用于判断循环的条件,但其实语法中也没有规定3个语句要使用同一个变量(例子中使用同一个变量的用法是最常见的)。第三个语句会在循环中所有语句执行完后触发,一般用来递增或递减计数器的值。
for语句的省略写法:
#include<iostream>using namespace std;//for语句的省略写法int main(){int i = 0 ;for ( ; i < 10 ; ){cout << "输出数字: " << i << endl;i++;}return 0 ;}
运行结果为:
在for语句头部分别省略了计数器初始化和自增的语句,用空语句来代替而将它们移到了其他位置。可以看出这样的写法就和while一模一样了。
此外,for语句头部的三个语句也都可以用逗号操作符来操作多个变量,写出复杂的循环条件。
for语句中的逗号操作符
#include<iostream>using namespace std;//for语句的逗号操作符int main(){for (int i = 0 ,j = 10 ;j>5 && i<10;i++,j--){cout << "输出数字:" << i << "和" << j << endl;}return 0;}
运行结果:
在循环头部增加了一个 j变量,并使得每次循环都检测 i 和 j 两个值。
注意:例子中的第二个表达式不能写成 “j>5,i<10”,这是因为这一个语句会被当做表达式,它的返回值直接决定了循环是否要继续。逗号表达式将会返回有操作数的值,也就是返回“i<10”,而“j <5”将会被忽略。
循环嵌套
最后,说一下循环嵌套。与条件语句相同,循环语句也可以嵌套,而循环语句和条件语句相互之间也可以嵌套。
输出九九乘法表
#include<iostream>using namespace std;//输出九九乘法表int main(){for (int i=1;i < 10;i++){for (int j =1;j<10;j++){cout << i << "x" << j << "=" << i*j <<" " ;} cout << endl;}return 0 ;}
使用了两层嵌套的for循环输出九九乘法表,运行结果为:
程序中的外层循环决定了第一个乘数的值,而内层循环决定了第二个乘数,两个循环的计数器相乘就得到了乘积。
如果对您有帮助请点赞支持一下下~