如果条件被跳过这段代码有什么问题?

问题描述:

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且

format永远不可能等于两个 “点” AND(&&) “PM”。或者使用或者(||),或者更好的是,使用:

if (format.equalsIgnoreCase("PM")) 

这将覆盖 “PM”, “PM”, “PM” 和 “PM”。

您需要检查格式是否为“PM”“pm”。您正在检查

if(format.equals("PM")||format.equals("pm")) 

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尝试从