while { 语句; } 语句;
1.首先判断while后面括号内的语句是否为真,若为真则进入循环,执行大括号内的语句,若为假,则跳过while循环执行循环体外的语句。 2.若在while的大括号内执行了break语句,则循环马上终止,跳出循环去执行循环体外的语句。 3.一直循环到while后面小括号的表达式为假,循环才结束。
do { 循环语句; }while(循环条件);
1.先无条件执行一次循环体内的语句而后再判断循环条件的真假,除此以外与while循环结构一致。 2.特别注意在循环条件后面加上一个分号,表示循环的结束。
int i,j,n; for(i=0;i<n;i++) { for(j=0;j<i;j++) { } }
1.外层循环一次,内层循环一轮。 2.若是在内层循环遇到break语句,则跳出内层循环,外层循环继续。
1.若是已经知道循环次数,则选择使用for循环更适合。 2.在不知道循环次数的状况下,更适合使用while循环或者do while循环,若是有可能一次循环都不执行,应该考虑使用while循环,若是至少循环一次,应该考虑使用do while循环。
1.在没有循环结构的状况下,break不能用在单独的if-else语句中。 2.在多层循环中,一个break语句只能跳出当前循环。 3.continue语句的做用是跳过循环体后面的语句,继续下一次循环。 4.continue语句和break语句的区别在于,break语句结束循环,而continue语句只是跳事后面的语句继续循环。break语句除了能够停止循环,还用于switch语句,而continue语句只能用于循环。
代码量为800行左右,离目标还差一大截。安全
输入比赛时间T do { if(十分钟后兔子仍是比乌龟快) { if(30分钟后比赛没有结束) { tortoise = tortoise + 3 * 30; time = time + 30; } else没有到30分钟比赛结束 {tortoise = tortoise + (T - time) * 3; break; } } tortoise = tortoise + 3; rabbit = rabbit + 9; time++; }while(比赛时间不等于比赛结束用时) 输出比赛结果及胜利者所跑距离
输入数据 | 输出数据 | 说明 |
---|---|---|
242 | @_@ 726 | 正常数据 |
9 | ^_^ 81 | 小于十分钟 |
30 | -_- 90 | 临界数据 |
改完后提交发现输出仍是有问题,再从新审题,发现输出表情后面多了一个空格。学习
输出菜单 for(循环五次) { 输入选择的编号 if(输入的编号为零) 退出,程序结束; switch(编号) { case 1:price = 3.00; break; case 2:price = 2.50; break; case 3:price = 4.10; break; case 4:price = 10.20; break; case 0:break; default:输入其余编号,价格为零;退出; } 输出价格 }
输入数据 | 输出数据 | 说明 |
---|---|---|
3 | price=4.10 | 正常数据 |
0 | 无 | 0数据 |
6 | price=0.00 | 非正常数据 |
从新检查每一次输出都有菜单出来,因而把输出菜单放到for循环外面。测试
输入一个正整数n if(n<20) { for(从2^2-1开始循环) { num = pow(2, i) - 1; for(判断素数) { if(不是素数)退出; if(是素数) { 输出素数的值 count++; } } } } if(count==0) 输出“None”
输入数据 | 输出数据 | 说明 |
---|---|---|
6 | 3 7 31 | 正常数据 |
2 | 3 | 特殊数据 |
0 | None | 0数据 |
再检查发现给j的初值是1,而后把j=1改为j=2。3d
第二个同窗的代码相对于个人就更简洁,引入了变量flag,使整个程序更简洁明了,值得学习。另外,代码的排版整洁有序,可读性强。代码规范