繁体   English   中英

在 Java 中确定输入的整数是奇数还是偶数的应用程序

[英]An application that determines an entered integer to be odd or even in Java

我是 Java 语言的新手,到目前为止刚刚学习了基本的东西。 我必须编写一个应用程序,要求用户输入一个整数,然后显示一个语句,指示一个整数是偶数还是奇数。 这就是我所做的:

import java.util.Scanner;

public class EvenOdd
{
   public static void main(String[] args)
   {
      Scanner input = new Scanner(System.in);
      System.out.print("Enter an integer >> ");
      int num = input.nextInt();

      double divisibleByTwo = num % 2;

      if(divisibleByTwo == 0)
         System.out.println("The integer entered is even.");
      else
         System.out.println("The integer entered is odd.");   
   }
}

上面的代码工作正常,但是对我的代码进行评分的软件要求我的代码采用以下格式:

import java.util.Scanner;
class EvenOdd
{
   public static void main(String[] args) 
   {
      // accept user input and check if number is even or odd
   }
   public static boolean isEven(int number)
   {
      // check if number is even
   }
}

以下是我的设置,但我有几个错误,我不确定如何开始并使其正常工作。 任何帮助,将不胜感激。

import java.util.Scanner;
class EvenOdd
{
   public static void main(String[] args) 
   {
      // accept user input and check if number is even or odd
      Scanner input = new Scanner(System.in);
      System.out.print("Enter an integer >> ");
      int num = input.nextInt();

      isEven(num);

      boolean divisible;
      isDivisibleByTwo = divisible;

      if(divisible == true)
         System.out.println("The integer entered is even.");
      else
         System.out.println("The integer entered is odd.");   
   }
   public static boolean isEven(int number)
   {
      // check if number is even
      int remainderByTwo = number % 2;
      boolean isDivisbleByTwo = (remainderByTwo == 0);
      return isDivisibleByTwo; 
   }
}

在您的第一个示例中,您在执行时正确分配了变量

double divisibleByTwo = num % 2;

然后使用返回的值检查

if(divisibleByTwo == 0)...

返回真或假。 但是在下一个代码示例中

isEven(num); //NO asignment!!!!

boolean divisible; //defaults to false
isDivisibleByTwo = divisible;

if(divisible == true) //divisble will always be false

由于您从未将可整除分配给 isEven 返回的值,因此您的 if 语句将始终返回 false,因为布尔变量的默认值为 false。

您需要分配 isEven 方法调用返回的值,然后像这样使用该值

boolean isDivisibleByTwo = isEven(num);

if(isDivisibleByTwo)
   System.out.println("The integer entered is even.");
else
   System.out.println("The integer entered is odd.");

或者您可以使用 isEven 方法的返回值,而不必将其分配给这样的变量

if(isEven(num))
   System.out.println("The integer entered is even.");
else
   System.out.println("The integer entered is odd.");

你不需要把事情复杂化。 你只需要更简洁的代码:

public class OddEven {

    public static void main(String[] args) {
        // accept user input and check if number is even or odd
        Scanner input = new Scanner(System.in);
        System.out.print("Enter an integer >> ");
        int num = input.nextInt();

        boolean remainder = isEven(num);
        if (remainder == true)
            System.out.println("The integer entered is even.");
        else
            System.out.println("The integer entered is odd.");
    }

    public static boolean isEven(int number) {

        if (number % 2 == 0)
            return true;
        else
            return false;
    }

}

您的目标是在isEven方法中完成所有计算,您的 main 方法将仅用于从用户获取数字并调用其他方法。 无需在那里进行计算。

换句话说,类似于以下内容:

import java.util.Scanner;
class EvenOdd
{
   public static void main(String[] args) 
   {
      // Get the user input
      Scanner input = new Scanner(System.in);
      System.out.print("Enter an integer >> ");
      int num = input.nextInt();
      // Check if the input is correct ?

      // Call your method and check the return value
      if(isEven(num))
         System.out.println("The integer entered is even.");
      else
         System.out.println("The integer entered is odd.");   
   }

   // And then your method is good
   public static boolean isEven(int number)
   {
      // check if number is even
      return (number % 2) == 0;
   }
}

编写一个应用程序,读取两个整数并确定并打印第一个是否是第二个的倍数。 例如,如果用户输入 15 和 3,则第一个数字是第二个数字的倍数。 如果用户输入 2 和 4,则第一个数字不是第二个数字的倍数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM