在while,do while ,for 循环中,执行continue时,分别跳转到啥地方了? 请详细点说明!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在while,do while ,for 循环中,执行continue时,分别跳转到啥地方了? 请详细点说明!相关的知识,希望对你有一定的参考价值。

在JAVA中,如上题

continue的功能和break有点类似,区别是continue只是终止本次循环,接着开始下次循环。而break则是完全中止循环。可以理解为continue的作用是略过档次循环中剩下的语句,重新开始新的循环。例如下面的程序示范了continue的用法。
public class TestContinue

public static void main (String[] args)

//一个简单的for 循环
for(int i=0;i<3;i++)

System.out.println("i的值是:"+i);
if(i==1)

//略过本次循环的剩下的语句
continue;

System.out.println("continue后的输出语句");



当i=1时,程序没有输出“continue后的输出语句”字符串,因为程序执行到continue时,忽略了当次循环中continue语句后的代码。从这个意义上来看,如果把一个continue语句放在单次循环的最后一行,这个continue语句是没有任何意义的--因为它忽略了一片空白,没有任何程序语句。
与break类似,continue也可以紧跟一个标签,用于直接结束标签所标示循环的当次循环,重新开始下一次循环。里入下面代码:
public class TestContinue2

public static void main (String[] args)

//外层循环
outer
for(int i=0;i<5;i++)

//内层循环
for(int j=0;j<3;j++)

System.out.println("i的值为:"+i+"j的值为:"+j);
if(i==1)

//跳出outer标签所指定的循环。
continue outer;





运行上面的程序,循环变量的值将无法超过1,因为当j=1的时候,continue outer语句就结束了外层循环的当次循环,直接开始下一次循环,内层循环没有机会执行完成。
与break类似的,continue后的标签也必须是一个有效标签,即这个标签通常应该放在continue所在循环的外层循环之前定义。

看完上面的解析,我想楼主应该明白了continue的用法了吧。
参考技术A continue和break都有结束循环的作用,只不过continue是结束当前执行的循环,也就是结束本次循环接着执行下一次循环,而break则是结束整个循环体执行下面的语句。 参考技术B 如是这样写的continue就没意思了;
while(i<100)
System.out.println(i);
continue;

像上面把continue写在循环的最后一条语句的是没意义的。因为continue的作用是跳出本次循环,快速进入下一次的条件判读进入下一次循环。

C++中,do while, for loop和while loop之间有啥不同

如题,求高人解答一下,最好能弄点例子。。本人入门不久,例子简单易懂最好。
谢谢~!

都是为了实现循环流程。
出于对C++设计方向思考,为了实现循环,我们第一个想到的一定是先有个关键词表示要循环,然后有个判断条件,判断什么时候进行循环什么时候停止。因而设计师给出了while(条件)也很好用。
但在程序开发过程,我们会发现,经常有需要先无条件地执行一次与循环体相同的内容,再判断条件是否满足,如果满足继续执行循环体,这种情况,只用while来写这样的流程是很麻烦的,需要在进入while循环体之前,单独写一次与循环体相同的代码,为了简洁,出现了do...while(条件)这样的体制。并且它与while(条件)比较,条件语句所出现的相应位置也是符合我们的思维习惯(dowhile的条件在循环体之后,也就是先无条件运行一次循环体,然后判断条件,while是先判断条件,再确定是否执行循环体)一目了然。
并且在开发过程中,发现很多循环流程都需要事先进行变量初始化,事先执行部分代码,判断条件,改变关键变量等操作,这些东西需要相应地分别写在while外与while的循环体内,与判断条件中。但有更直观地写法,就是将它们用另外格式替代,以实现更直观代码量可能更少,就多了for的设计。for (表达式1,条件,表达式2)循环体。执行并只执行一次表达式1,然后“条件,循环体,表达式,条件,循环体,表达式……”循环下去,直到条件不满足为止(当第一次判断条件时就不满足,那就会直接跳出for整个语句而不执行循环体),另外在表达式1中如果声明了变量,那么这个变量的有效范围是:不同的编译器给它的范围不同,有的编译器设定为for体内外都可用,有的编译器设定为只能在for体内可用。
例如 第一种编译器 for(int i = 0; ; ) ++i; 编译通过,i在体外可用。
另一种编译器 for(int i = 0; ; ) ++i; 编译不通过,i在体外不可用,也就是认为代码书写有误。
do while,while, for之间可以互通,也就是说任意一种都可以代替其他两种达到同样的目的。只是针对不同情况,这三种方式表现出的节俭方便度与逻辑复杂度不同。
例1:
int i = 0;
do ++i; while(i < 2);
等效于
int i = 0;
++i
while(i < 2) ++i;
等效于
int i = 0;
++i;
for (;i < 2; ++i);
上面的3个例子很片面很简单,看不出哪种形式更有优势。其实这三种形式各有优点,在后期开发中你自己会很快体会到。需要do while时并且循环体很大时,那么一定选do while最合适,没有二选。
如果事先需要判断条件的话,一定是while与for最合适(具体用哪个更好要看情况,有时用哪个都行,有时各显优点),而不会去用do while,因为如果用do while 会画蛇添足,需要多写一些无畏的代码,并且逻辑复杂代码冗余等各种尴尬出现给自己找麻烦。
另外你提到的loop我不太了解,以前的C++语句中不包含这个关键词,不知道C++11中是否有增添,另外C++11中增加的循环的另外形式,不过我就帮不上忙了,我对C++11很是不熟。
不知道你说loop是不是看到有人写 goto loop; 这类的语句?如果是的话,那就是goto跳转了与loop无关,但一定不要用它来进行循环,甚至也尽量避免使用goto进行跳转。goto容易造成逻辑错误,并且排错不那么方便,后期维护时也容易带来更多麻烦。这里goto就不做过多介绍了,反正我是不用它。goto 比while,do while出现的要早,也是因为他不好用,随意性太强,才出现了更合适的while,do while,for 等形式。
参考技术A do…while循环语句总能保证循环体被执行一次,其形式如下:
do

Statement;
while(expression);
注意,在do…while循环结构中,while语句的括号内指定循环的条件,该句结尾处应以分号“;”结束。
--------------------------------------------------------------------
while循环结构具有下列形式:
while (expression)
statement;
只要expression表达式的值为“真”,就重复执行statement语句。
--------------------------------------------------------------------
For语句通常用于处理具有固定长度的数据结构,例如数组等。下面是for循环语句的语法结构:
for (expression1; expression2; expression3)

statement;

其用法和执行过程同C语言基本相同。本回答被提问者和网友采纳
参考技术B 你弄错了。C++里只有:
do

while(条件语句)

while(条件语句)



for(初始化语句;条件语句;循环后处理语句)


这三种循环。没有loop
参考技术C do while是先执行再判断。至少能执行一遍

for loop和while loop 都是先判断后执行,可能一遍都不执行。
而for loop和while loop的区别是,for loop的控制变量的初始化,条件判断,和变量递增基本写在for后面的括号里,而while loop都写在循环程序段里。
参考技术D do

i++;
while(i > 0);
先运行一次i++ ,再判断i是否大于0,继续执行循环

while(i>0)

i++;

先判断i是否大于0,继续执行判断

for(i = 0;i < N;i++)

doSometing();

先初始化 i为0 ,再判断 i是否小于 N ,dosomething() ,最后i++
判断 i是佛小于N ,dosomething() ,i++

如此往复 ,直到i >= N 跳出循环

以上是关于在while,do while ,for 循环中,执行continue时,分别跳转到啥地方了? 请详细点说明!的主要内容,如果未能解决你的问题,请参考以下文章

for while do-while三种循环体的特点和缺点

for,while,do while语句区别以及常见死循环格式

JAVA 循环结构 - for, while 及 do...while

Java 循环结构 - for, while 及 do...while

32 for while 和 do while的区别

C++中,do while, for loop和while loop之间有啥不同