我似乎無法確定我的代碼出了什麼問題。在閱讀了String類之後,我嘗試用短得多的代碼向後打印迴文,但除了執行換行符之外,控制檯上什麼都沒有。 我認爲這個問題可能來自於for語句中的條件表達式,因爲當我使用「i < = l & & i> -1」並用System.print(i +「」)調試它時,我得到了列表中的數字範圍從17到0.那麼,當前表達式有什麼問題,爲什麼我不能使用「i < l & & i> -1」?有沒有什麼是非法的,因爲我打算使用從16到0的數字呢?for循環中的條件表達式不按預期方式運行
public class StephenWork
{
private String objString ;
private int index;
private void makeString (String objString)
{
this.objString = objString;
}
private char[] printBackwards()
{
int length = objString.length();
char [] backwards = new char [length];
for (index = length ; index < length && index > -1 ; index--)
{
backwards [index] = objString.charAt(index);
}
return backwards;
}
public static void main (String ... args)
{
String palindrome = "tod saw I was dot";
int l = palindrome.length();
char [] backwards = new char [l];
for (int i = l; i < l && i > -1 ; i--)
{
//System.out.println(i); //I was using this to debug the value of i
backwards [i] = palindrome.charAt(i);
}
String printPalin = new String (backwards);
System.out.println(printPalin);
StephenWork example = new StephenWork();
example.makeString("I love Java");
System.out.println(example.printBackwards());
}
}
如果在第一次迭代中'i = l',它不會通過條件檢查'i
Blorgbeard
2014-08-28 00:56:25
for(int i = l; i> -1; i--) – Donal 2014-08-28 00:58:07
'for(init; condition; increment){body}'相當於'init; while(condition){body;增量; }' - 如果你將for循環翻譯成這種形式,問題應該會變得更加清晰。 – Blorgbeard 2014-08-28 01:00:46