我已经尝试过这个作业。但是当我输入 1 时,它不应该给出任何输出,因为 1 is > 0 而 1 不是偶数,但我仍然得到如下输出:
Enter a +ve number
1
You entered 1
I'd asked for a +ve number :)
.
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter a +ve number");
int number = input.nextInt();
System.out.println("You entered "+number);
if(number > 0)
if(number %2 == 0)
System.out.println("Number"+number+" is even and +ve");
else
System.out.println("I'd asked for a +ve number :)");
}
}
最佳答案
你的 else 实际上属于 2nd if
而不是缩进显示的第一个 if
。
if(cond1)
if(cond2)
else // this else belongs to 2nd if not 1st if.
等同于:
if(cond1) {
if(cond2) {
} else {
}
}
这是因为 Java 语法说 else 属于它可能属于的最接近的未匹配 if。
如果你想把else和first匹配的话需要使用括号as:
if(cond1) {
if(cond2) {
}
} else {
}
关于Java作业帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3802023/