瓜瓜咚 发表于 2019-3-12 10:39:01

for循环中break和continue的区别

假如:int a=0;下面那个控制程序会进入死循环?
A、for(;;)
       if(a)continue;

B、for(;a=0;)
       if(a)break;

C、for(;;)
       if(a)break;

D、for(;;a=0)
       if(a)break;

瓜瓜咚 发表于 2019-3-12 10:39:45

希望大神能够帮忙解释一下,这个知识点没太弄明白。

BngThea 发表于 2019-3-12 10:48:21

除了B,应该都是死循环吧

hiwch 发表于 2019-3-12 11:01:31

1. for(初始条件;终止条件;变化方式)
2. if(0) 为 false

B 不会进入死循环,因为B符合终止条件
A因为缺少 终止条件 并且 if(0) 为假不会break跳出循环
C因为缺少 终止条件 并且 if(0) 为假不会break跳出循环
D因为缺少 终止条件 并且 if(0) 为假不会break跳出循环

瓜瓜咚 发表于 2019-3-12 11:15:19

hiwch 发表于 2019-3-12 11:01
1. for(初始条件;终止条件;变化方式)
2. if(0) 为 false



B符合终止条件,但是if(a)还是为false啊。
其余ACD的解释看懂了

a491367326 发表于 2019-3-12 11:45:44

瓜瓜咚 发表于 2019-3-12 11:15
B符合终止条件,但是if(a)还是为false啊。
其余ACD的解释看懂了

循环还没开始,就直接终止了。跳出去了

a491367326 发表于 2019-3-12 11:47:31

瓜瓜咚 发表于 2019-3-12 11:15
B符合终止条件,但是if(a)还是为false啊。
其余ACD的解释看懂了

你上机单步调试下,就看明白了。

瓜瓜咚 发表于 2019-3-12 12:49:10

a491367326 发表于 2019-3-12 11:47
你上机单步调试下,就看明白了。

大神,这个a=0在判断条件中是什么意思啊?不是赋值吧?
它和a==0不一样吧?

My_A 发表于 2019-3-13 00:28:10

666

a491367326 发表于 2019-3-13 01:59:57

瓜瓜咚 发表于 2019-3-12 12:49
大神,这个a=0在判断条件中是什么意思啊?不是赋值吧?
它和a==0不一样吧?

就是赋值,当判断被赋值条件为0,就意味着命题为假,循环直接跳过。
页: [1]
查看完整版本: for循环中break和continue的区别