2017-03-16 44 views
0
import java.util.*; 
public class TimeFormat { 

public static void main(String args[]) { 
    Scanner sc=new Scanner(System.in); 
    System.out.println("Enter your Name."); 
    String name=sc.nextLine(); 
    System.out.println("Enter the time format either it is AM or PM"); 
    String format=sc.nextLine(); 
    System.out.println("Enter hour time."); 
    int hrs=sc.nextInt(); 
    System.out.print(":"); 
    int min=sc.nextInt(); 

    if(format.equals("PM")&&format.equals("pm")) { 
     if(hrs>=12&&hrs<=5&&min>1) { 
      System.out.println("Good afternoon "+name); 
     } 
     else if(hrs>=5&&hrs<=8) { 
      System.out.println("Good evening "+name); 
     } 
     else if(hrs<=12&&hrs>=8&&min<59) { 
      System.out.println("Goodnight "+name); 
     } 
    } 
    else { 
     System.out.println("Good Morning "+name); 
    } 
    } 
} 

請命令行總是跳過if條件。我是新來的java請幫助我。一切都很好,但如果聲明造成了問題,或者我想。請如何改進此代碼。如果條件被跳過這段代碼有什麼問題?

+1

您正在添加有幾個if語句。哪一個被跳過? – klutt

+2

什麼數字> = 12且<= 5? –

回答

5

format永遠不可能等於兩個 「點」 AND(&&) 「PM」。或者使用或者(||),或者更好的是,使用:

if (format.equalsIgnoreCase("PM")) 

這將覆蓋 「PM」, 「PM」, 「PM」 和 「PM」。

1

您需要檢查格式是否爲「PM」「pm」。您正在檢查

if(format.equals("PM")||format.equals("pm")) 
0
public static void main(String[] args) { 
     Scanner sc = new Scanner(System.in); 
     System.out.println("Enter your Name."); 
     String name = sc.nextLine(); 
     System.out.println("Enter the time format either it is AM or PM"); 
     String format = sc.nextLine(); 
     System.out.println("Enter hour time."); 
     int hrs = sc.nextInt(); 
     System.out.print(":"); 
     int min = sc.nextInt(); 

     if (format.equals("PM") || format.equals("AM")) { 
      if (hrs >= 12 && hrs <= 5 && min > 1) { 
       System.out.println("Good afternoon " + name); 
      } else if (hrs >= 5 && hrs <= 8) { 
       System.out.println("Good evening " + name); 
      } else if (hrs <= 12 && hrs >= 8 && min < 59) { 
       System.out.println("Goodnight " + name); 
      } 
     } else { 
      System.out.println("Good Morning " + name); 
     } 
    } 

你有一個& &(AND)條件,你需要一個|| (OR)條件,+你的選擇是上午還是下午,沒有PM或PM嘗試從