亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

請教大神一道題

我想把這個程序用do....while寫出來,應該怎么做?求大神指教。

public class Test{

????public static void main(String [] args){

????int a=0,b=1;

????do{

????????????a=a+b;

????????? if(b%3!=0){

????????????a=a+b;

????????????b++;

}????

}????? ? while(b<=100);

????????????System.out.println(a);

}

}

正在回答

4 回答

b++是你循環繼續的條件,如果寫道if語句里邊的話,當你碰到第一個能夠整除3的數時候(第一個數是3),if語句判斷條件不成立,則不執行后邊大括號里邊的語句,此時你的b=3,while循環判斷b<100(b=3),則進行下一輪循環,碰到if語句時還是跳過不執行,代碼就陷入了死循環。

0 回復 有任何疑惑可以回復我~
#1

qq_明_5 提問者

非常感謝!謝謝各位大神的解答。明白了
2016-03-17 回復 有任何疑惑可以回復我~
#2

依然狠特別 回復 qq_明_5 提問者

客氣。。。
2016-03-17 回復 有任何疑惑可以回復我~

題目如果是想將100以內除了能被3整除的數以外所有數相加,輸出最終結果的話,下面的代碼可以看看。。

?int sum=0;
??int b=1;
??do
??{
???if(b%3!=0)
???{
???//?System.out.println("b="+b);????????//作為檢驗的語句
????sum+=b;
???}
???++b;
??}while(b<=100);
??System.out.print("最終的結果是:"+sum);

0 回復 有任何疑惑可以回復我~

這不就是用do……while寫的嗎?

0 回復 有任何疑惑可以回復我~
public?class?Test?{
	public?static?void?main(String[]?args){
		int?a=0,b=1;
		do{
			if(b%3!=0){
				a=a+b;
			
			}	b++;
		}while(b<=100);
		System.out.println(a);
	}
}

誤打誤撞寫出來了..求解釋?為什么a=a+b要寫在if里面的中括號內;

為什么b++要寫在if的中括號外,

0 回復 有任何疑惑可以回復我~
#1

謝凌宇

b++;是迭代語句啊。放在中括號里面當b%3=0的時候不就不執行了么
2016-03-17 回復 有任何疑惑可以回復我~
#2

qq_明_5 提問者 回復 謝凌宇

大哥,您的解釋我不是很明白,能否再寫明白點?當然如果您嫌麻煩就算了,我再琢磨琢磨..
2016-03-17 回復 有任何疑惑可以回復我~
#3

蘇小演 回復 qq_明_5 提問者

放在括號里面,只有能被3整除的才求和,不滿足就不就和。放在括號外面,不管能不能被3整除都要求和,這樣就不對了。
2016-03-21 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Java入門第一季(IDEA工具)升級版
  • 參與學習       1167590    人
  • 解答問題       18749    個

0基礎萌新入門第一課,從Java環境搭建、工具使用、基礎語法開始

進入課程

請教大神一道題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號