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 ");
}