输出两个if语句

时间:2014-06-12 08:20:11

标签: java if-statement output

为什么以下输出"休息"和#34;学习?"不应该只是"学习"?

    boolean isSleeping = false;
    boolean isStudying = true;
    if (isSleeping)
        System.out.println(" Sleeping ");
        System.out.println(" Resting ");
    if (isStudying)
        System.out.println(" Studying ");

7 个答案:

答案 0 :(得分:3)

基本上,因为你没有在{...}之间包含第一个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 "); 
}

这是为什么鼓励在条件语句周围使用大括号的原因之一

答案 1 :(得分:1)

if (isSleeping)
    System.out.println(" Sleeping "); // your if condition's scope ends here
    System.out.println(" Resting ");// always printed
if (isStudying)
    System.out.println(" Studying "); // your second if condition's scope ends here

答案 2 :(得分:1)

如果要执行两个语句,请使用{ }

像这样:

if (isSleeping) {
    System.out.println(" Sleeping ");
    System.out.println(" Resting ");
}
else if (isStudying) {
    System.out.println(" Studying ");
}

我已经编辑并添加了else,因为 symentically 有人在睡觉或休息时没有学习。

答案 3 :(得分:1)

如果要为该条件执行更多语句,请在if语句后添加花括号。

boolean isSleeping = false;
    boolean isStudying = true;
    if (isSleeping){
        System.out.println(" Sleeping ");
        System.out.println(" Resting ");
    }
    if (isStudying)
        System.out.println(" Studying ");

答案 4 :(得分:1)

您不会将{...}用于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.

答案 5 :(得分:1)

阅读范围:SCOPE

没有if{的{​​{1}}语句作为范围后的第一行代码。

但是,如果您只想打印,则必须执行以下操作:

}

答案 6 :(得分:1)

if(true)
line 1
line 2

以上if语句没有括号{} ..这意味着if语句仅适用于if语句之后的行(第1行)。

但是

if(true)
{
line 1
line 2
}

上面带括号的if语句在括号的整个主体上是al = pplicable ..这适用于第1行和第2行..

在你的情况下

if (isSleeping)
    System.out.println(" Sleeping ");
    System.out.println(" Resting ");

此IF声明仅适用于第一行" Sleepinfg" .. so" Resting"没有任何IF声明。所以"休息"将始终在输出文件

你的代码应该是这样的..

boolean isSleeping = false;
boolean isStudying = true;
if (isSleeping)
{
    System.out.println(" Sleeping ");
    System.out.println(" Resting ");
} 
if (isStudying)
{
   System.out.println(" Studying ");
}