16.循环结构
while(测试条件)
{
循环行为1
循环行为2
循环行为3
...
}
for (计数器设置初始值; 循环条件; 计数器更新)
{
循环行为1
循环行为2
循环行为3
...
}
不要在while或for后加分号
do{
循环行为1
循环行为2
循环行为3
...
}while(循环条件);
17.辅助循环
有限循环的三个要素
1. 开始时,为计数器设置初始值。 2. 计数器与一个有限值比较作为循环条件。 3. 更新计数器。
-使用break打破循环
-continue
continue语句会跳过本次循环的内容,并开始下一轮的循环
在for语句中执行,少了15,因为在for语句中continue之后先执行自加再输出
for中使用break
可得结论:
for中使用continue,将立即更新计数器,再进入新循环。
for中使用break,将跳出循环 。
-break和continue与嵌套循环
在循环嵌套中,break或continue将作用于自己的直属上级循环。 对于上面的代码,内层循环调用break跳出循环到外层。外层循环再次调用break才能结束外层循环。
18.多重选择 ,switch的使用
switch(整型表达式)
{
case 整型常量1:
语句
case 整型常量2:
语句
case 整型常量3:
语句
default:
语句
...
}
switch的跳转步骤:
1. switch 会先计算括号内的整型表达式结果。
2. 依次对比 case 中的常量,是否等于整型表达式的结果。
3. 若不相等,对比下一个 case 。
4. 若相等,跳转到这个 case 。
5. 若没有相等的,跳转到 default 。
swtich语句的几个注意事项:
1. switch 后面的括号里面只能填一个整型表达式。
2. case 后的常量不能有重复的。
3. 可以没有 default 。
如果没有getchar();
这是因为我们输入的时候,首先键入了 'a' ,之后再按下了回车键 '\n' 。scanf首先吸收了 'a' ,而后 再吸收了 '\n' ,所以才输出了 i don't know 。
switch 中的 break 只属于switch语句。它的效果是跳出 switch 。无法对 while 语句产生 效果。 若将 break 写在 switch 语句外,那么它将对 while 产生效果。
continue对switch不产生影响,所以continue属于while