Java if流程语句打印问题!

img


为啥我输入33,明明在第二区间里却打印不出来呢??求指教!
忽然就搞不懂这个问题了;是格式有问题嘛?

该回答内容部分引用GPT,GPT_Pro更好的解决问题
可能是你的if语句有问题,Java的if流程语句的格式是:

if(条件){
    //执行的代码  
}else if(条件){
    //执行的代码  
}else{
    //执行的代码  
}

例如:你要求输入33时,在第二区间打印出来,那么可以这样写:

int num = 33;
if (num >= 0 && num <= 20) {
    System.out.println("在第一区间");
} else if (num > 20 && num <= 50) {
    System.out.println("在第二区间");
} else {
    System.out.println("在第三区间");
}

如果回答有帮助,望采纳。

该回答引用GPTᴼᴾᴱᴺᴬᴵ
在代码中,第二个if语句的判断条件有一个错误。应该是 m<=70,而不是 6m<=70。这个错误导致了输入 33 时不会进入第二个if语句,也就无法打印出在第二区间的信息。

你可以将代码中的 & 改为 &&,这是一个常见的逻辑错误。另外,也要注意代码格式,如大小写、括号、分号等,以免引起编译错误。修改后的代码如下:

import java.util.Scanner;

public class Test4 {
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("输入数宇m");
        int m = sc.nextInt();
        if (m >= 10 && m <= 30) {
            System.out.println("m在第一区间");
        } else if (m >= 30 && m <= 70) {
            System.out.println("m在第二区间");
        } else if (m >= 70 && m <= 100) {
            System.out.println("m在第三区间");
        } else {
            System.out.println("m不在任何区间");
        }
    }
}


这样就能正确输出输入为 33 时 m 在第二区间的信息了。

你代码保存了么?

方法是没问题的;肯定能正常执行的,另外把这个else去掉

img

你确定多了这个else,代码能运行?

img