Java 两个if语句的输出
为什么下面的输出需要休息和学习?它不应该只是学习吗Java 两个if语句的输出,java,if-statement,output,Java,If Statement,Output,为什么下面的输出需要休息和学习?它不应该只是学习吗 boolean isSleeping = false; boolean isStudying = true; if (isSleeping) System.out.println(" Sleeping "); System.out.println(" Resting "); if (isStudying) System.out.println(" Studying
boolean isSleeping = false;
boolean isStudying = true;
if (isSleeping)
System.out.println(" Sleeping ");
System.out.println(" Resting ");
if (isStudying)
System.out.println(" Studying ");
如果要执行两条语句,请使用{}
像这样:
if (isSleeping) {
System.out.println(" Sleeping ");
System.out.println(" Resting ");
}
else if (isStudying) {
System.out.println(" Studying ");
}
我还编辑并添加了其他内容,因为睡觉或休息的人没有学习 如果希望针对该条件执行更多语句,请在if语句之后添加大括号
boolean isSleeping = false;
boolean isStudying = true;
if (isSleeping){
System.out.println(" Sleeping ");
System.out.println(" Resting ");
}
if (isStudying)
System.out.println(" Studying ");
基本上,因为没有将第一个if语句的内容包含在{…}之间,所以它基本上是一个限定词,表示
if (isSleeping)
System.out.println(" Sleeping ");
System.out.println(" Resting ");
if (isStudying)
System.out.println(" Studying ");
相反,尝试使用
if (isSleeping) {
System.out.println(" Sleeping ");
System.out.println(" Resting ");
}
if (isStudying) {
System.out.println(" Studying ");
}
这就是为什么鼓励在条件语句周围使用大括号的原因之一如果if语句不使用{…}。因此,它考虑了if中的第二行
试试这个:
boolean isSleeping = false;
boolean isStudying = true;
if (isSleeping) { // the following code between brackets will be executed.
System.out.println(" Sleeping ");
System.out.println(" Resting ");
}
if (isStudying)
System.out.println(" Studying "); // Without bracket, it executes only the line until the semi-colon.
阅读什么是范围:
不带{and}的if语句的作用域是条件后的第一行代码
但是,如果希望仅打印睡眠,则必须执行以下操作:
boolean isSleeping = false;
boolean isStudying = true;
if (isSleeping){
System.out.println(" Sleeping ");
}
System.out.println(" Resting ");
if (isStudying){
System.out.println(" Studying ");
}
上面的if语句没有括号{},这意味着if语句只适用于if语句后面的第1行
但是
以上带括号的if语句适用于整个括号。这适用于第1行和第2行
那么你的情况呢
if (isSleeping)
System.out.println(" Sleeping ");
System.out.println(" Resting ");
此IF语句仅适用于第一行Sleepinfg..因此Resting不包含任何IF语句..因此Resting将始终位于输出文件中
您的代码应该是这样的
boolean isSleeping = false;
boolean isStudying = true;
if (isSleeping)
{
System.out.println(" Sleeping ");
System.out.println(" Resting ");
}
if (isStudying)
{
System.out.println(" Studying ");
}
因为System.out.println正在休息;不在第一个if语句中。大括号定义块的范围。这是@Jongware不使用的一个很好的理由;在行尾,他会写if is sleeping::D:D:D
if(true)
{
line 1
line 2
}
if (isSleeping)
System.out.println(" Sleeping ");
System.out.println(" Resting ");
boolean isSleeping = false;
boolean isStudying = true;
if (isSleeping)
{
System.out.println(" Sleeping ");
System.out.println(" Resting ");
}
if (isStudying)
{
System.out.println(" Studying ");
}