我需要編寫一個程序,從用戶處獲取一個字符串並測試它是否是迴文。這必須用嵌套循環完成:我不能寫一個方法來返回答案。我還必須繼續接受字符串輸入並測試它們,直到用戶輸入一個空行,此時程序打印「再見」並終止。我遇到的麻煩是在兩個可能的輸入點(是迴文,不是)之後讓程序接受輸入,然後在循環中使用新輸入,並且每次輸出相應的行。測試迴文嵌套循環只有
下面是輸出應該是這樣的:
輸入字符串:轉子
轉子是迴文。
輸入一個字符串:木乃伊
木乃伊不是迴文。
輸入字符串:
空行讀取。再見。
這是我迄今爲止,它測試每個輸入,並返回正確的說法,但不起任何作用,當輸入爲空:
System.out.print("Enter a string: ");
String input = in.next();
if (input.length() > 0) {
int x = 0;
int y = input.length()-1;
while (x < y) {
if (input.charAt(x) == input.charAt(y)) {
x++;
y--;
}
else {
System.out.println(input + " is NOT a palindrome.");
System.out.println("Enter a string: ");
input = in.next();
}
System.out.println(input + " is a palindrome.");
System.out.println("Enter a string: ");
input = in.next();
}
}
else {
System.out.print("Empty line read - Goodbye!");
}
有什麼想法?這是家庭作業,順便說一句,所以我不是在尋找答案,而是尋找線索,或者我需要看的東西。
*「我不能寫一個方法來返回答案」* - 你可以也應該。將所有代碼放入'main'函數並不是很好的設計。僅僅因爲你使用循環並不意味着你不能將每個抽象級別移到它自己的函數中。 「遊戲循環」(請求重複輸入)可能在'main'中,但是當收到輸入時,它應該被傳遞給一個函數。該函數可能包含一個循環,儘管該循環的內容也可能作爲函數有意義。任何小的單一邏輯元素都應該在其自身的功能中。 – David