java中的If条件不能正确打印输出
输出:java中的If条件不能正确打印输出,java,Java,输出: public static void main(String args[]){ int x = 0; if (x > 0) System.out.println("positive "); System.out.println("zero "); System.out.println("negative"); } 为什么程序不打印正片而打印零和负片?因为x被设置为0 因此,if条件永远不会被验证,并且“肯定”语句
public static void main(String args[]){
int x = 0;
if (x > 0)
System.out.println("positive ");
System.out.println("zero ");
System.out.println("negative");
}
为什么程序不打印正片而打印零和负片?因为x被设置为0
因此,if条件永远不会被验证,并且“肯定”语句也不会被执行
你可能想写一些类似的东西
zero
negative
if(x>0)
系统输出打印项次(“正”);
如果(x==0)
System.out.println(“零”);
if(x<0)
系统输出打印项次(“负数”);
只需尝试:
if (x > 0)
System.out.println("positive ");
if (x == 0)
System.out.println("zero ");
if (x < 0)
System.out.println("negative");
为什么您认为当
x
的值为0时,它会打印正数
x>0
将返回false,因此它将跳过System.out.println(“阳性”)它将打印另外两行,因为您的if块以System.out.println(“正”)结尾代码>行本身,因为您没有将括号放在
if (x > 0) {
System.out.println("positive ");
} else if (x == 0) {
System.out.println("zero ");
} else {
System.out.println("negative");
}
在If条件内,显然If条件不正确,这就是为什么它不打印正片。它不打印正片,因为它没有通过If条件。x
的值为0
,该值不大于0
。它确实打印zero
和negative
,因为由于缺少大括号,它不在if
条件下。如果没有{}
则只执行If
条件后的第一行
如果您希望您的代码打印所有三种格式,即正数
负数
和零
,而x>0
(看不出您为什么要这样做),则您缺少了花括号,您的代码应该如下所示:
System.out.println("positive ");
对于您的代码,这将不打印任何内容,因为它未满足if
条件,因此不会执行大括号内的任何内容
但是如果你想让你的程序在>0
时打印正片
,在时打印负片
没有错,但是包含else if/else
的答案显然是一个更好的选择,因为如果第一个匹配,你可以避免两个比较。我们可以结束这个问题吗?如果你想重写你的代码,如果(x>0){System.out.println(“正”);}
System.out.println(“零”)代码>System.out.println(“负数”)代码>如您所见,最后2次打印不属于If子句
public static void main(String args[]){
int x = 0;
if (x > 0)
{
System.out.println("positive ");
System.out.println("zero ");
System.out.println("negative");
}
}