2011-10-16 71 views
20

我一直在試圖讓一個時鐘用戶可以設置。我希望用戶被問到問題,他們用「是」或「否」來回答。我已經做了的事情,如是否用戶想要顯示或不秒不使用此代碼更改,但是當我想要的字符串來改變,這是行不通的,以及從AM到PM說當小時超過12這裏是我使用的是什麼:你如何檢查是否字符串不等於在Java對象或其他字符串值?

System.out.println("AM or PM?"); 
    Scanner TimeOfDayQ = new Scanner(System.in); 
    TimeOfDayStringQ = TimeOfDayQ.next(); 

    if(!TimeOfDayStringQ.equals("AM") || !TimeOfDayStringQ.equals("PM")) { 
     System.out.println("Sorry, incorrect input."); 
     System.exit(1); 
    } 

    ... 

    if(Hours == 13){ 
     if (TimeOfDayStringQ.equals("AM")) { 
      TimeOfDayStringQ.equals("PM"); 
     } else { 
      TimeOfDayStringQ.equals("AM"); 
     } 
       Hours = 1; 
     } 
    } 

每次我輸入任何內容時,它會提示我,我是否把AM,PM,或其他明智的,它給了我我寫的錯誤,然後退出。當我刪除的代碼,終止與錯誤也不會字符串從AM改爲PM時小時等於13.謝謝你的幫助,該程序的部分,這是大加讚賞。

+3

作爲一個觀察,爲避免混淆,Java變量應該以小寫字母開頭。 –

回答

25

你的代碼更改爲:

System.out.println("AM or PM?"); 
Scanner TimeOfDayQ = new Scanner(System.in); 
TimeOfDayStringQ = TimeOfDayQ.next(); 

if(!TimeOfDayStringQ.equals("AM") && !TimeOfDayStringQ.equals("PM")) { // <-- 
    System.out.println("Sorry, incorrect input."); 
    System.exit(1); 
} 

... 

if(Hours == 13){ 
    if (TimeOfDayStringQ.equals("AM")) { 
     TimeOfDayStringQ = "PM"; // <-- 
    } else { 
     TimeOfDayStringQ = "AM"; // <-- 
    } 
      Hours = 1; 
    } 
} 
13

你要使用& &地看到,它不等於「AM」,而不是等於「PM」

if(!TimeOfDayStringQ.equals("AM") && !TimeOfDayStringQ.equals("PM")) { 
    System.out.println("Sorry, incorrect input."); 
    System.exit(1); 
} 

是明確的,你也可以做

if(!(TimeOfDayStringQ.equals("AM") || TimeOfDayStringQ.equals("PM"))){ 
    System.out.println("Sorry, incorrect input."); 
    System.exit(1); 
} 

有在代碼中not (one or the other)短語(記得(沉默)括號內)

+0

非常感謝。我對java很陌生,這可能是我犯了這樣一個簡單錯誤的原因。非常感謝你。 – Pillager225

1

更改||到& &所以它唯一的出口如果答案既不是「AM」,也不是「PM」。

相關問題