你好嗎 =)
我的任務是使用 While 回圈一個接一個地回傳帶有字符“@”“#”的字串,字串長度為 5。
我有一個想法,將“@”分配給奇數,將“#”分配給偶數。
其中“@”為 0,“#”為 1,“@”為 2,依此類推,直到行尾。不幸的是,我找不到如何做到這一點的資訊。
請檢查以下代碼,我希望它會更清楚我在說什么。
我會很高興任何提示或建議,謝謝:)
public String drawLine(int length) {
int i = 0;
while (i < length) {
//I know that the following code will take only the int length, it's just an idea
if(length % 2 == 0) {
i ;
System.out.print("@");
}
else {
i ;
System.out.print("#");
}
}
return new String("");
}
public static void main(String[] args) {
JustATest helper = new JustATest();
//The result should be @#@#@
System.out.println(helper.drawLine(5));
}
uj5u.com熱心網友回復:
首先,正如一些人已經在您的問題下方的評論中指出的那樣,我們在這里解決了兩個問題。
您在問題中定義您的任務是回傳最終字串而不是直接列印它。對于此類事情,您可以使用 a StringBuiler(請參見下面的示例)或以任何其他方式簡單地連接(例如"A" "B" -> "AB")
第二個問題是迭代本身。您使用 mod 2 來確定您測驗的值是否是偶數。這部分是正確的。但是,您總是在比較所需的長度length % 2 == 0而不是要列印的字符的當前位置i。因此,您只會根據所需的長度列印@或-times 是偶數(導致)或奇數(導致)。# length@#
您可以在下面找到有關如何正確解決任務的示例。length只需在if子句中交換i并連接結果并回傳它。
public String drawLine(int length)
{
int i = 0;
StringBuilder builder = new StringBuilder();
while ( i < length )
{
//I know that the following code will take only the int length, it's just an idea
if( i % 2 == 0 )
{
i ;
builder.append( "@" );
} else
{
i ;
builder.append( "#" );
}
}
return builder.toString();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/463840.html
