iT邦幫忙

0

請問為什麼Run出來的結果是單一個* 而不是多個*?

  • 分享至 

  • xImage

public class T628 {

public static void main(String[] args) {

	int i2 = 0 ;
	do {
		for(i2 = 0 ; i2 < 10 ; i2++);
	    while (i2<4);
		System.out.println("*");
	   }while(i2<10);
	
	
}

}

看更多先前的討論...收起先前的討論...
int i2 = 0 ;
do {
for(i2 = 0 ; i2 < 10 ; i2++);
while (i2<4);
System.out.println("*");
}while(i2<10);
改成
int i2 = 0 ;
do {
for(i2 = 0 ; i2 < 10 ; i2++); {
while (i2<4);{
System.out.println("*");} }
}while(i2<10);
就能出現你要的結果
看不太出來程式的主要目的是想做啥 請注意分號在for, while這些關鍵字後面代表的意義
s15113209 iT邦新手 5 級 ‧ 2021-09-01 15:05:05 檢舉
這個for迴圈是不是光累加卻沒做事0.0
917293 iT邦新手 5 級 ‧ 2021-09-01 21:01:39 檢舉
謝謝您們!!
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

2
海綿寶寶
iT邦大神 1 級 ‧ 2021-09-01 15:01:00

因為在for(i2 = 0 ; i2 < 10 ; i2++);之後 i2=10
所以只會印出一次
https://ithelp.ithome.com.tw/upload/images/20210901/20001787bH1KDjqwNj.png

看更多先前的回應...收起先前的回應...
917293 iT邦新手 5 級 ‧ 2021-09-01 17:10:02 檢舉

我有用Eclipse裡面的Debug看也是在進去for(i2 = 0 ; i2 < 10 ; i2++);之後 i2=10,但我不知道為什麼進去之後i2就變成10?

很簡單 FOR後面接分號 當然就是跑迴圈只做i2++
所以最後i2就變10拉

那個 for 之後,i2就變成10,不管 for 做不做任何事
https://ithelp.ithome.com.tw/upload/images/20210901/20001787ThVz5Zhnun.png

你最好看清楚書本或是教學範例
因為不只我看不懂
我想你自己都不知道為什麼要這麼寫

917293 iT邦新手 5 級 ‧ 2021-09-01 20:48:00 檢舉

好的!謝謝您們願意花時間為我解答,讓我知道哪裡應該要加強,我會再去好好了解整個迴圈的運作.

1

把你的DO裏面的程式拆成

for(i2 = 0 ; i2 < 10 ; i2++);
while (i2<4);
System.out.println("*");

拆開來看

for(i2 = 0 ; i2 < 10 ; i2++);
while (i2<4);
System.out.println("*");

以上的拆法,就是你程式目前分開的情況。
再組合

do {
		............ 
}while(i2<10);

你就會發現美妙之處在哪了。

基本上,書本因該是要教你簡寫用法的處理。
及可能碰到的地雷。

這題目不錯,或許我該拿來當考題。

917293 iT邦新手 5 級 ‧ 2021-09-01 20:51:29 檢舉

好的!謝謝您願意花時間為我解答!!

我要發表回答

立即登入回答