【问题标题】:How to write an even or odd program in java?如何用java编写偶数或奇数程序?
【发布时间】:2019-11-04 20:06:14
【问题描述】:

我的指令是“编写一个程序,提示用户输入一个数字,然后从一个数('for'循环)到该数字并打印该循环数是偶数还是奇数(这将需要一个'if -else' 循环内的结构)。”所以需要列出: 1是奇数 2 是偶数 3 是奇数...

public class AssmtEvenOrOddJulianP {
public static void main(String[] args) {
  //variable
  int num = 0;

  //input
  System.out.print("\nEnter a number less than 100: ");
  num = Expo.enterInt();

  //output
  for (int i = 1; i <= num; i++)
     if ((num % 2) == 0)
     System.out.print("\n" + i + " Is Even");       
     else if ((num % 2) >= 0)
     System.out.print("\n" + i + " Is Odd");

现在,如果我输入 3,它将打印: 1是奇数 2是奇数 3是奇数

【问题讨论】:

  • 你应该检查i,而不是num
  • 非常感谢,应该仔细看看。
  • 对您的代码的注释:即使可能,您也不应忽略单行 for- 周围的左括号和右括号。 if-, else-, ... 声明。

标签: java for-loop if-statement


【解决方案1】:

小错误:

您应该用 2 计算 i 的余数,而不是用 2 计算 num

始终将 forif/else 块括在花括号中:

for (int i = 1; i <= num; i++) {
    if ((i % 2) == 0) {
        System.out.print("\n" + i + " Is Even");
    } else if ((num % 2) >= 0) {
        System.out.print("\n" + i + " Is Odd");
    }
}

避免使用多余的括号:

for (int i = 1; i <= num; i++) {
    if (i % 2 == 0) {
        System.out.print("\n" + i + " Is Even");
    } else if (num % 2 >= 0) {
        System.out.print("\n" + i + " Is Odd");
    }
}

else if 条件有一个小错误,目前“无法访问”,但将来可能会导致痛苦

num % 2 &gt;= 0 应该是i % 2 &lt; 0 || i % 2 &gt; 0

else if 条件可以简化为else

for (int i = 1; i <= num; i++) {
    if (i % 2 == 0) {
        System.out.print("\n" + i + " Is Even");
    } else {
        System.out.print("\n" + i + " Is Odd");
    }
}

最终结果:

还有其他一些小的改进:

public class EvenOdd {
    public static void main(String[] args) {
        // input
        System.out.print("\nEnter a number less than 100: ");

        // variable
        int num = Expo.enterInt();

        System.out.println();

        // output
        for (int i = 1; i <= num; i++) {
            if (i % 2 == 0) {
                System.out.println(i + " Is Even");
            } else {
                System.out.println(i + " Is Odd");
            }
        }
    }
}

【讨论】:

  • 或者,在 Java 8+ 中,IntStream.rangeClosed(1, num).forEach(i -&gt; System.out.printf("%d Is %s%n", i, i % 2 == 0 ? "Even" : "Odd"));
【解决方案2】:

以下程序将为您提供帮助。对于奇数和偶数,我们需要除以 2,如果数字可被 2 整除,则数字为偶数(在这种情况下,提醒将为 0),如果提醒为 1,则其奇数

public class EvenAndOddNumber {
public static void main(String[] args) {

    System.out.println("Enter the number");
    Scanner sc = new Scanner(System.in);
    int num = sc.nextInt();

    for (int i = 1; i <= num; i++) {
        if (i % 2 == 0) {
            System.out.println(i + " is even number");
        } else {
            System.out.println(i + " is odd number");
        }
    }
}

}

【讨论】:

  • 您为他/她完成了 OP(原始发帖人)的工作,但没有回答他们(暗示的)他们在哪里犯错的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-14
  • 1970-01-01
  • 2013-03-05
  • 1970-01-01
  • 1970-01-01
  • 2020-10-28
相关资源
最近更新 更多