我没打错的- - 答案是25 你不信输入进编译器试试 就是不懂为啥
追答我不是解释了么?
你这个程序的意思是 从1 开始 执行 DO while语句
执行到i=9
然后里面片段是 i%2==0的时候 即I为双数 不执行 s+=i;
相反 i=单数的时候执行 s+=i;(即累加)
1-9的单数 有 1 3 5 7 9 加起来 刚好是25
这样 你都看不明白呢?
s+=i; 这句话的意思是 S每到这里一次 就加上I的值
如果还看不明白 你在看
s+=i;
System.out.println("s+i 当前I的值是: "+i);
下面把 I的值打印出来 最后 把打印出来的I 都加起来 正好是25.。。你都不看解释的么?
...{ int i=0,s=0; do{ if(i%2){i++;continue;} i++; s+=i; }...
do……while,是先执行完DO后的语句才来判断WHILE中的条件,即I=7时才结束。continue其作用为结束本次循环,即跳出循环体中下面尚未执行的语句。此时I为偶数时不执行I++;S+=I:这两句。故最后的结果为16
下面程序的运行结果是 。 void main() { int i=0,s=0; do{ if(i%
s=2+4+6=12
...main() { int i,s=0; for (i=1;i<10;i++) if(i%2&&i%3) s+=i...
if中的条件判断是当(i%2 != 0) && (i % 3 != 0)时,if中的语句会被执行 也就是既不能被2整除,也不能被3整除的数在1到10的范围内有:1,5,7
{int i=o; while(i<10) {if(i<1)contiinue; if(i==5)break; i++;}...
因为i的值始终是0,当i=0时,while条件满足,接着判断i是不是小于1,这时明显是小于1的,接着执行countiue,跳出本次循环,接着判断i是不是小于10,由于i的值没有变化,所有已知执行while (i <10) { if (i<1) countiue;} ,而if(i==5)break; i++;永远不会被执行到,i的值始终不变...
有一程序片段:{i=0;s=0;while(s<=n){i++;s=s+i;}},其时间复杂度是
在循环中i每次自增1,s是求前i项的和,根据等差数列求和公式s=i(i+1)\/2,循环结束的条件是s<=n,也就是i(i+1)\/2<=n,所以i是与n的1\/2次方成正比的,因此得出结论。当满足条件时进入循环,进入循环后,当条件不满足时,跳出循环。while语句的一般表达式为:while(表达式){循环体}。
int i=1,s=3; do{ s+=i++; if(s%7==0) continue; else++i;} while...
8 运行的就是8
...{ int i=0,s=0; do{ if(i%3){i++;continue;} i++; s+=i; }w...
22,1+4+7+10 = 22;if(i%3)判断是否能整除3,余数为0,则进行i++;s+=i;不为0则为真,则进行{i++;continue;} 所以当i=0,3,6,9时进行i++;s+=i;操作。所以s=1+4+7+10=22.谢谢采纳
(2) i=1;x=0; do{ x++;i=i*2; ① }while(i<n) 求一下①的语句频度和时间...
对数阶,不可能执行n次,因为循环里面有:i=i*2,所以时间复杂度为应该这么计算:设时间频度函数为f(n),则2^f(n) <= n ,所以f(n)<=log以2为底的n,所以f(n)最大为log以2为底的n
int i=1,s=3; do{ s+=i++; if(s%7==0) continue; else++i;} while...
s+=i++;\/\/s = s+i得到s=4;i=2;if(s%7==0) continue; \/\/不满足,继续运行下一句 else ++i; \/\/得到i = 3;while(s<15);\/\/满足,继续do循环 s+=i++;\/\/s = s+i得到s=7;i=4;if(s%7==0) continue; \/\/满足,转至判断while条件 while(s<15);\/\/满足,继续do循环 s+...
...{int i=0; while(i<10) {if(++i<1) continue; if(i==5) break...
if(++i<1) continue ++i<1 不会成立 执行 if(i==5) break; i++;当i=5 时 break 结束循环