2017-09-25 19 views
1

這是我的代碼只能使用一個:我需要得到伊文思和賠率兩條獨立的線路,但美中不足的是,while循環

int numb = 50; 
int odd; 
int even; 
while (numb <= 100) { 
    if (numb % 2 == 0) { 
     even = numb; 
     System.out.println(even); 
     System.out.print(", "); 
     numb++; 
    } 
    System.out.println(""); 
    if (numb % 2 != 0) { 
     odd = numb; 
     System.out.print(odd); 
     System.out.print(", "); 
     numb++; 
    } 
} 

到目前爲止,它打印的答案,但我的兩列需要分開排隊和賠率。我究竟做錯了什麼?

+1

爲什麼不只是添加脣上和賠率在兩個不同的陣列或列表,然後在while循環結束後在最後打印這兩個數組/列表? –

+0

我不能使用數組,我喜歡但不能。這是整個項目的一個條件。 –

+0

@ChthonicProject以良好格式打印此數組/列表可能需要另一個循環。最簡單的方法就是使用兩個Stringbuilders,在其中添加均衡/賠率並在while循環完成後打印這些。 –

回答

4

您可以使用兩種StringBuilder並保留追加sOddsEven到各自的StringBuilder和循環之後,你可以打印出來。

類似的東西

StringBuilder sOdd = new StringBuilder(""); 
StringBuilder sEven = new StringBuilder(""); 

while (numb <= 100) { 
    if (numb % 2 == 0) { 
     sEven.append(numb).append(","); 
    } 
    if (numb % 2 != 0) { 
     sOdd.append(numb).append(","); 
    } 
    numb++; 
} 

System.out.println(sEven.toString()+"\n"+sOdd.toString()); 
+0

爲什麼使用「字符串」,如果我們可以使用其他可變字符串類如「StringBuilder」或「StringBuffer」。 – Punit

+0

@Punit true。由於OP不具體。如果你願意,我可以改變它;) – Ravi

+0

完美,完美運行,我不知道字符串可以這樣工作。我是一個低級的中級Java用戶,所以很高興知道他們可以像這樣工作。 –

0

I F你講究單while循環,不斷額外的空間,你可以這樣做:

int numb1 = 50,numb2=51; 
while (numb1 <= 100 || numb2<=100) 
{ 
if (numb1<=100) 
{ 
    System.out.print(numb1); 
    System.out.print(", "); 
    numb1=numb1+2; 
} 


else if (numb2<=100) 
{ 
    if(numb2==51) 
    System.out.println(); 

    System.out.print(numb2); 
    System.out.print(", "); 
    numb2=numb2+2; 
} 
} 
相關問題