哪里有問題?
int i=1; int sum=0; do { if (i%2==0) { sum=i+sum; }else { i++; } }while(i<=50); ? ? ? ? System.out.println(" 50以內(nèi)的偶數(shù)之和為:" + sum ); ? ?哪里有問題?
int i=1; int sum=0; do { if (i%2==0) { sum=i+sum; }else { i++; } }while(i<=50); ? ? ? ? System.out.println(" 50以內(nèi)的偶數(shù)之和為:" + sum ); ? ?哪里有問題?
2018-03-18
舉報
2018-03-18
樓上正解,當i為偶數(shù)2時,只有sum會不斷增加,而無法執(zhí)行else中的i++操作,從而陷入死循環(huán)。
解決辦法:在sum = i + sum;語句下面同樣加一句i++;
2018-03-18
不對是大括號? 沒有匹配
2018-03-18
do 里面語句: i =1 執(zhí)行了else i++ 此時i為2 ,符合了while的條件 ,繼續(xù)執(zhí)行do里面語句。 2 % 2 == 0 成立,執(zhí)行sum=i + sum 即 sum = 2 + 0 ,sum = 2 ,i = 2;此時仍然符合while的條件。? 那么接著執(zhí)行 do里面語句,2 % 2 == 0成立, sum = 2 + 2? , sum = 4 , i = 2 ; 又符合while的條件,那么接著執(zhí)行 do里面語句,2 % 2 == 0成立, sum = 4 +2 , sum= 6 , i = 2 ;又符合while的條件,那么接著執(zhí)行 do里面語句.......你這是個死循環(huán),看懂了么
2018-03-18
邏輯哪里錯了?
2018-03-18
?int i=1;
??int sum=0;
???do {
????if (i%2==0) {
?????sum=i+sum;
????}else {
?????i++;
????}
????
???}while(i<=50);
????
???????
??System.out.println(" 50以內(nèi)的偶數(shù)之和為:" + sum );