for循环执行顺序

for循环执行顺序,第1张

这道题的难点是:&&的短路功能,当第一个表达式的值为false的时候,则不再计算第二个表达式。

所以for(i = 0i <6i++ &&k++)循环的执行顺序:

当i=0的时候,第一次进入for循环,for语句执行到i = 0i <6结束,并不执行i++ &&k++,当第一次循环结束后i=0,k=0。

进行第二次循环for语句执行 i <6i++ &&k++。并先执行i++ &&k++。这个时候i=0,为false,所以就不执行右边即k++。由此第二次循环后i=1,由于k++没有执行,所以k还是=0。

进入如烂第三次循环,i=1。&&必须要通过计算右边的表达式才能得出结果。所以开始执行k++。所以第三次渗带循环 时候 i=2,k=1 。以此类推,一直循环到i=6条件不成立停止循环。

扩展资料:

基本的优先级需要记住:

指针最优,单目运算优于双目运算。如正负号。

先算术运算,后移位运算,最后位运算,逻辑运算最后计算。请特别注意:1 <<3 + 2 &&7等价于 (1 <<(3 + 2))&&7。

Java中&&和&都是表示与的逻辑运算符,都表示逻辑运输符and,当两边的表达式都为true的时候,整个运算结果才为true,渣喊漏否则为false。

&可以用作位运算符,当&两边的表达式不是Boolean类型的时候,&表示按位 *** 作。

参考资料:“与”运算-百度百科

运算符优先级

循环嵌套,先执行for(c=1c<=nc++)这个循环,再执行for(b=1b<羡散备nb++),兄毁最后执行for(a=1a<na++)比如:

for(a=1a<20a++)

for(b=1b<20;b++)

for(c=1c<=20c++)

if(a+b+c==100)break

第一个判断的是a=1,b=1,c=1是否等于100

第二个判断的是a=1,b=1,c=2是否等掘配于100,

直到c为20,b+1然后判断a=1,b=2,c=1是否等于100,

接着a=1,b=2,c=2是否等于100

...

剩下的同理

首先纠正一下,for是C语言中的循环控制语句,不是函数。通常,一个for语句的格式为: for(初始化条件判断 *** 作){}程序在首次执行for语句的时候,会先运行竖纤初始化部分,注意,初始化部分只运行一次。接着进行条件判断。条件判断部分是余激仿一个表达式,该表达式返回一个布尔值,如果为真,则运行后面花括号中的语句,然后运行for中的 *** 作部分(通常是一个变量的步增和歩减);这样就完成了一次循环。接下来运行第二次循环,不再进行初始化,直接从条件判断开始,如果为真,则继续刚才的过程,如果为假,则跳出for循环。铅歼例如: for(int i = 10i >0i -= 3) printf("i = %d\n",i)这段语句的输出为: i = 10 i = 7 i = 4 i = 1 该语句第一次执行时,先进行初始化,此时i=10,接着进行条件判断,i>0为真,则输出“i=10”,然后对i减3;第二次循环时,i=7,从条件判断i>0开始,7>0为真,则输出“i=7”,再对i减3;第三次循环输出“i=4”;第四次循环输出“i=1”之后对i减3,此时i=-2,当再次进行条件判断的时候,-2>0为假,此时跳出for循环。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12412297.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存