Java 我的if语句暂时不起作用-收到错误消息
我尝试使用if语句根据当前时间向用户显示问候消息。我已经设置了当前时间,但是我无法将其用于if语句Java 我的if语句暂时不起作用-收到错误消息,java,if-statement,simpledateformat,Java,If Statement,Simpledateformat,我尝试使用if语句根据当前时间向用户显示问候消息。我已经设置了当前时间,但是我无法将其用于if语句 public class MyFrame extends JFrame { public MyFrame() { super("Greeting"); setbounds(200, 200, 200, 150); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Calendar
public class MyFrame extends JFrame {
public MyFrame() {
super("Greeting");
setbounds(200, 200, 200, 150);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("hh");
JTextArea tx = new JTextArea(10,5);
String myTime = sdf.format(cal.getTime());
if (myTime < 12am && myTime > 12pm)
tx.append("Good Morning");
}
if (myTime <12am && myTime > 12pm)
tx.append("Good Afternoon");
}
JPanel pane = new JPanel();
pane.add(tx);
add(pane);
setVisible(true);
}
public static void main(String [] args) {
new MyFrame();
}
}
公共类MyFrame扩展了JFrame{
公共MyFrame(){
超级(“问候”);
立根(200200200150);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Calendar cal=Calendar.getInstance();
SimpleDataFormat sdf=新的SimpleDataFormat(“hh”);
JTextArea tx=新的JTextArea(10,5);
字符串myTime=sdf.format(cal.getTime());
如果(我的时间<上午12点&我的时间>下午12点)
德克萨斯州(“早上好”);
}
如果(我的时间下午12点)
德克萨斯州(“下午好”);
}
JPanel窗格=新的JPanel();
窗格。添加(tx);
添加(窗格);
setVisible(真);
}
公共静态void main(字符串[]args){
新MyFrame();
}
}
这句话不对
if (myTime < 12am && myTime > 12pm)
if(myTime<12am&&myTime>12pm)
您无法比较那样的字符串,您可以以24小时格式获取时间,然后将其解析为整数以进行比较。关于您的警卫,请尝试:
if (myTime < twelveAM)
myGreeting = "Good Morning"
} else {
myGreeting = "Good Afternoon"
}
tx.append(myGreeting);
if(myTime
如果myTime小于twelveAM所引用的值,则会附加“早上好”。如果myTime不小于twelveAM引用的值,则流程将通过警卫并附加“午安”
特别注意类型转换,在你的守卫中进行比较之前必须做的事情,如下面的注释中所述。你得到的错误消息是什么?
12am
和12pm
都不是有效的java标识符。myTime<12am&&myTime>12pm
?这么多语法错误,我甚至无法预测表达式的类型12am
to be?首先,if(myTime<12am)
这是一个有效的语句吗?myTime
是一个字符串,Java不允许12am
作为一个标识符,他特别询问了他的if逻辑。我回答了这个具体问题。OP需要自己解决变量命名和/或类型转换问题,他的IDE现在应该已经告诉他了。但是作为奖励,我现在也为OP修改了变量命名。当然我可以为他编写整个代码,但是我也想要他的薪水。