4.简答: 说明while循环和for循环在语法,使用场景上有什么不同? break和contin
break用来跳出循环(结束循环);break语句还可以用在switch语句中,用来跳出switch语句。
break语句通常用在循环语句和开关语句中。当break用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句;如果没有break语句,则将成为一个死循环而无法退出。
当break语句用于do-while、for、while循环语句中时,可使程序终止循环而执行循环后面的语句,通常break语句总是与if语句联在一起,即满足条件时便跳出循环。
例:
#include
int main(void){
int i=0;
char c;
while(1){ /*设置循环*/
c='\0'; /*变量赋初值*/
while(c!=13&&c!=27){ /*键盘接收字符直到按回车或Esc键*/
c=getch();
printf("%c
", c);
}
if(c==27)
break; /*判断若按Esc键则退出循环*/
i++;
printf("The No. is %d
", i);
}
printf("The end");
return 0;
}
注意:
break语句对if-else的条件语句不起作用;
在多层循环中,一个break语句只向外跳一层。
continue 语句
continue语句的作用是跳过循环体中剩余的语句而强行执行下一次循环。continue语句只用在for、while、do-while等循环体中,常与if条件语句一起使用,用来跳过本轮循环中循环体里余下未执行的语句(因为它们不在那种情况下不需要执行)。
对比一下break和continue。
while的用法:
while(表达式1){
……
if(表达式2) break;
……
}
continue的用法:
while(表达式1){
……
if(表达式2) continue;
……
}
#include
int main(void){
char c;
while(c!=13){ /*不是回车符则循环*/
c=getch();
if(c==0X1B)
continue; /*若按Esc键不输出便进行下次循环*/
printf("%c
", c);
}
return 0;
}
首先解释一下continue和break的区别:
continue:退出当次循环。
break:退出当前循环(终止循环)。
1. continue
也许这样说你有点混淆,我来举个例子:
for(i=1;i<=10;i++)
{
if(i%3==0)
continue ;
System.out.println("i = "+i);
}
也就是说从1开始print,当遇到能整除3的数字时,运行continue命令去执行下一次循环。比如你的例子打印出来的结果就是
i = 1
i = 2
i = 4
i = 5
i = 7
i = 8
i = 10
循环中断:i = 11
因为当i 为3的时候 if(i%3==0) 的结果为ture,所以它会执行continue; 于是就不会执行 System.out.println("i = "+i) 的命令,所以i=3就不会打印出来,转去执行下一次循环,也就是i = 4。当i = 4 的时候不能被3整除,于是不会执行continue, 而会去执行System.out.println("i = "+i)。当i = 6 或者 i = 9时,也同样不会打印出来,只能去循环7 或者 10的值
2. break
假如把continue换成break
for(i=1;i<=10;i++)
{
if(i%3==0)
break ;
System.out.println("i = "+i);
}
当遇到i = 3的时候,能整除3,程序回去执行break命令,然后就终止这个循环,不会再去循环i = 4和4以后的数字。打印出来的结果就是:
i = 1
i = 2
循环中断:i = 3
这就是continue和break的区别。continue是退出当次循环, 但是会继续循环,break是退出当前循环,即终止循环。
局部变量在栈内存中存在,当for循环语句结束,那么变量会及时被gc(垃圾回收器)及时的释放掉,不浪费空间。如果使用循环之后还想去访问循环语句中控制那个变量,使用while循环
2、从应用场景角度考虑:
如果一个需求明确循环的次数,那么使用for循环(开发中使用for循环的几率大于while循环)。如果一个需求,不知道循环了多少次,使用while循环。
所以for循环适用于已知循环次数,while循环适用于未知循环次数。不知道要循环多少次,但当i>=n的时候停止循环。
3、从适用范围考虑:
一般来说,for对于初学使用的要多于while,但其实while的功能要大于for,所有的for循环都可以用while来表示,但就不是所有的while循环都可以用for循环来表示。
说东贝洛:[答案] 其实这两个可以互相代替的,比如说 for (int i = 0; i
清水河县18374689729: for循环和while循环的区别及用法?
说东贝洛: 其实这两个可以互相代替的,比如说 for (int i = 0; i<10; i++) {...//插入语句 } 用while来写就是 int i = 0; while (i<10) { ...//插入语句 i++; } for循环比较简洁,会比while更常用些,尤其是用array的时候,很方便的. 但是如果想做无限循环,while更...
清水河县18374689729: c语言中while的用法 - ?
说东贝洛: 语句a; while(n==1); 语句B; 当n==1时,程序while(1)成立,不断循环,因为后面while()后面直接是分号“;”所以这里n==1直接就是死循环, 当n与等于1时,程序同样是while(1)成立,和上面的情况一样,所以两个都是死循环. 扩展资料...
清水河县18374689729: java里while do{} while 和 for 语句 的用法 和不同方法的使用?
说东贝洛: 如果你学过C的话,用法就和C里的差不多了.for的用处比while更大,因为用for可以替代while,但是while却不一定可以代替for. 循环: for,while和do Java中有三种循环控制语句,他们是:for语句、while语句和do语句,下面分别说明这三种语...
清水河县18374689729: 我想做一个C语言关于While循环的介绍,带例子的,应该怎样讲?谢谢啊 - ?
说东贝洛: 主要介绍while循环中的条件,退出机制,执行顺序,break语句,continue语句 while(条件) { 语句; } 判断条件-》执行语句-》判断条件…… break语句挑出while循环,continue回到循环开始地方 例子:i=1; while(i<10) { printf("%d\n",i++); } ...
清水河县18374689729: c语言循环结构 - ?
说东贝洛: 一种是不知道循环的次数 如 while 和 do while while(n!=0) printf("*"); 而while 与do while 的区别只是 while 先判断条件是否成立 再进行执行 而do while 是先执行 再来判断条件是否成立 一种是知道循环的次数 如 for for(i=0;i<5;i++) printf("*"); 其实还有一种叫 goto 循环 应该是属于第一种的 只不够使用goto的话 程序读的效率不高 容易出错 所以少用最好了
清水河县18374689729: java中的流程控制语句中的三种循环控制语句 - ?
说东贝洛: 三种分别是for循环、while循环、do…while循环.for循环,举例for(int i=0;i<5;i++){ };从0开始循环,每次加1,一直到4结束. while循环,举例while(true){};也就是当条件为真的时候执行,否则一次也不执行 do…while循环,举例 do {i =0;System.err.println(i)}while(i>1){};此情况下即使不满足条件也会执行do中的语句,这个适合while的区别.备注:具体用那种循环根据实际需要选择即可.
清水河县18374689729: while和do - while的使用方法 - ?
说东贝洛: while循环开始后,先判断条件是否满足,如果满足就执行循环体内的语句,执行完毕后再回来判断条件是否满足,如此无限重复;直到条件不满足时,执行while循环后边的语句.简单来讲就是说while循环是先判断后循环, 判断如果满足条件进...
清水河县18374689729: C语言 生成元 自动笔指的位置的那个While循环 具体要做什么呢?能详细说明一下吗 - ?
说东贝洛: 题目说了:生成元y等于x加上x各位数字之和,那个while循环就是做这个事情,y每次加x的个位数字,之后x向右移动一位,这样原先x的十位数就已到了个位数,依此类推;while(x>0) 想象一下,当x的持续向右移动直到x
清水河县18374689729: 什么是while for case 循环?简单举例,简明扼要的说明一下 多谢了 - ?
说东贝洛: while循环用于次数不确定的循环 如while(x > 1){}只要x>1的都要循环for循环用于次数确定的循环 如for(int i = 0; i < 10; i++){}循环次数为10赐case不是循环 是进行判断 switch(x){case 0:执行代码;break;case1: 执行代码;break;....}