Java作业帮助

标签 java

我已经尝试过这个作业。但是当我输入 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/

相关文章:

java - JedisPoolConfig 不可分配给 GenericObjectPoolConfig

Java UTF-8 差异

java - 如何通过简单地将字符串写入套接字来设置/格式化 HTTP header

java - 通过线程池运行可运行,我应该使用 volatile 吗?

Java初学者对构造函数的使用感到困惑

java - 在Java中调用另一个类的方法?

java - 解释使用 Hibernate 映射自动递增复合 id 序列中的行为

java - Hibernate 配置 - session 工厂扫描?

java - 高尔顿板的java实现

java - 使用 Spring security 设置权限时出错