我想,作爲一個自分配鍛鍊,寫一個簡單的程序,它的生日,並決定在其指定的日期在一週中的一天。該計劃的第一部分決定了年份。我使用的是掃描儀收集用戶輸入,然後一個do-while循環來測試是否輸入是可用的(必須是數字,必須爲四位),如果輸入不符合標準的重複。我試圖輸入1998年,這顯然是一個數字和四位數字,它重複循環,就好像我的輸入無效。我假設在我的do-while循環中存在問題,但我一直無法確定它是什麼。這是有問題的代碼。通過我的掃描儀收集的輸入沒有被處理正確
public static boolean isInteger(String input)
{
try
{
Integer.parseInt(input);
return true;
}
catch(Exception e)
{
return false;
}
}
public static void main(String[] args)
{
String year = "";
String yearcorrect = "";
int ylength = year.length();
boolean yearIsYear = true;
Scanner scan = new Scanner(System.in);
do
{
System.out.println("Please enter the year of your birth.");
year = scan.nextLine();
boolean yearIsNum = isInteger(year);
if (yearIsNum = false || ylength != 3)
{
System.out.println("Input is not a valid year.");
yearIsYear = false;
}
else
{
System.out.println("You entered the year " + year + ". Is this correct?");
yearIsYear = true;
yearcorrect = System.console().readLine();
}
}
while (yearcorrect != "yes" && yearIsYear != true);
'yearIsNum = FALSE'意味着你'if'永遠不會通過。 – ChiefTwoPencils