2017-11-21 12 views
2

私は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; 
    } 
} 
+1

あなたの間違いは何ですか?何かエラーがありますか?もしそうなら、最初のものは何ですか?そして、それは何の原因ですか? –

+1

[Javaのメソッドからの戻り値の使い方?](https://stackoverflow.com/questions/28985402/how-to-use-return-value-from-method-in-java) – BackSlash

+0

ローカル変数と戻り値について学ぶことができます。これらは、ここで理解する必要がある2つの重要な概念です。 –

答えて

3

はあなたがtrueまたはfalseを返します

if(divisibleByTwo == 0)... 

チェック返されたその値を使用して、あなたが

double divisibleByTwo = num % 2; 

を行う際に正しく変数を割り当てるとしています。文は常にfalseを返します場合はブール変数のデフォルト値はfalseですので、あなたがあなたのISEVENによって返された値に割り切れる割り当てることはありませんので、しかし、コードの次のサンプルでは、​​あなたは

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

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

if(divisible == true) //divisble will always be 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."); 
0

あなたの目標はisEven方法ですべての計算を行うことです、あなたの主な方法は、ユーザーからの番号を取得し、他のメソッドを呼び出すために使用されます。そこに計算をする必要はありません。

つまり

次のようなもの:

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; 
    } 
} 
1

あなたは物事をovercomplicateする必要はありませんが。あなたはきれいで簡単なコードが必要です:

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; 
    } 

} 
関連する問題