为什么以下输出"休息"和#34;学习?"不应该只是"学习"?
boolean isSleeping = false;
boolean isStudying = true;
if (isSleeping)
System.out.println(" Sleeping ");
System.out.println(" Resting ");
if (isStudying)
System.out.println(" Studying ");
答案 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)
答案 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 ");
}