使用逻辑运算符组合的表达式for (int i = 1;i <= 100 && i % 3 != 0; i++ ) { sum = sum + i;} 这样有什么问题呢? 请问输出的结果sum为什么是3
for (int i = 1;i <= 100 && i % 3 != 0; i++ ) { sum = sum + i;}
for循环每次执行都要判断当前循环变量的值是否满足循环条件(i <= 100 && i % 3 != 0;i++)
当 i= 1时,i <=100 && i % 3 !=0 成立 sum =1
i++,i = 2,也满足循环条件,sum = 1 + 2 =3
i++,i = 3,注意: 3<=100的值为true, 3 % 3 !=0 的值false 所以循环条件(i <= 100 && i % 3 != 0;i++)的值为false,终止循环,输出sum = 3;
运算符优先级%大于!= 大于&&,先进行i%3的运算,在进行!=0的运算,在整体进行&&的运算
可是过程应该是0+1+2+4+5+7+...+100,结果等于3367才对的呀 为啥执行了两步,结果等于3,就停止了呢?
for (int i=1;i<=100&&i%3!=0;i++){sum=sum+i};