发布网友 发布时间:2022-04-24 02:16
共9个回答
懂视网 时间:2022-05-18 03:15
引发这个问题思考的是一段js程序的运行结果:热心网友 时间:2022-05-18 00:23
这道题的难点是:&&的短路功能,当第一个表达式的值为false的时候,则不再计算第二个表达式。
所以for(i = 0; i < 6; i++ && k++)循环的执行顺序:
当i=0的时候,第一次进入for循环,for语句执行到i = 0; i < 6;结束,并不执行i++ && k++,当第一次循环结束后i=0,k=0。
进行第二次循环for语句执行 i < 6; i++ && 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类型的时候,&表示按位操作。
参考资料:“与”运算-百度百科
运算符优先级
热心网友 时间:2022-05-18 01:41
for循环的执行顺序用如下表达式:
<span style="font-family:
'WenQuanYi Micro Hei Mono',
'WenQuanYi Micro Hei',
'Microsoft Yahei Mono',
'Microsoft Yahei',
sans-serif;">for(expression1;expression2;expression3)
{
expression4;
}
</span>
执行的顺序应该是:
1.第一次循环,即初始化循环。
首先执行表达式expression1(一般为初始化语句);再执行expression2(一般为条件判断语句),判断expression1是否符合expression2的条件;如果符合,则执行expression4,否则,停止执行;最后执行expression3。
2.第N(N>=2)次循环
首先执行expression2,判断在expression3是否符合在expression2要求;如果符合,则继续执。
行expression4,否则,停止执行。最后执行在expression3。如此往复,直至expression3不满足expression2条件是为止。
<strong>总结:</strong>
总的来说,执行的顺序是一致的。先条件判断(expression2),再函数体执行(expression4),最后for执行(expression3)。往复......区别在于,条件判断的对象。第一次判断时,对象为初始化语句(expression1), 后续的判断对象为执行后的结果(expression3)。
注意事项:
1.for循环中的变量可以是一个也可以是多个,不要局限于一个变量处理到底,那样有时会很单调,当程序适合把多个变量组成循环时,用多个for语句来表示就是有些浪费了!
2.for循环中语句可以为语句体, 语句体外加大括号"{}"将参加循环的语句括起来。 for循环的三个表达式都是逗号表达式,这样来说,其实每个分号表达式可以由几个逗号表达式构成,中间用",”隔开,最后以“;”结束。
3. for循环中的"单次表达式"、"条件表达式"和"循环体语句"都是选择项, 即可以缺省成只剩下“;”的空语句, ";"不能缺省的原因是编译格式如此,缺省了编译器不认识而会报错。
省略了用来初始化的单次表达式时, 表示不对循环控制变量赋初值。
省略了条件表达式, 若不做其它处理则成为死循环。
省略了所有循环体, 则for语句不被其它形式处理时不产生任何作用。
百度百科for循环
热心网友 时间:2022-05-18 03:16
看了半天 才明白过来热心网友 时间:2022-05-18 05:07
程序重点位置就是 for(i = 0; i < 6; i++ && k++)里面的,i++ && k++,由于一般的编译器,对于逻辑运算符 的处理,按照从左之右,并且如果左面的表达式就可以得到最终的结果,那右边的就不执行了。热心网友 时间:2022-05-18 07:15
外面的for循环和单循环一样,外面的for循环一次,里面的for循环跑完热心网友 时间:2022-05-18 09:40
我看主要是这句难以理解,我给你解释一下:热心网友 时间:2022-05-18 12:21
for(i = 0; i < 6; i++)热心网友 时间:2022-05-18 15:19
for(i = 0; i < 6; i++ && k++)