如果条件被跳过这段代码有什么问题?
问题描述:
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请帮助我。一切都很好,但如果声明造成了问题,或者我想。请如何改进此代码。如果条件被跳过这段代码有什么问题?
答
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尝试从
您正在添加有几个if语句。哪一个被跳过? – klutt
什么数字> = 12且