はじめに
この実験では、Java で剰余演算子(modulo operator)を使用して数が奇数か偶数かを判断する方法を学びます。剰余演算子の概念と、2 で割ったときの結果が奇数と偶数を区別する方法を探ります。
実践的な手順を通じて、剰余演算子を適用して奇数をチェックし、さまざまな数値型でロジックを検証し、偶数と奇数の両方のチェックを組み合わせることで、Java の条件付きロジックに関する実践的な経験を積むことができます。
この実験では、Java で剰余演算子(modulo operator)を使用して数が奇数か偶数かを判断する方法を学びます。剰余演算子の概念と、2 で割ったときの結果が奇数と偶数を区別する方法を探ります。
実践的な手順を通じて、剰余演算子を適用して奇数をチェックし、さまざまな数値型でロジックを検証し、偶数と奇数の両方のチェックを組み合わせることで、Java の条件付きロジックに関する実践的な経験を積むことができます。
このステップでは、Java で剰余演算子(modulo operator)を使用して数が奇数か偶数かを判断する方法を学びます。剰余演算子 (%
) は、除算の余りを返します。たとえば、10 % 3
は 1 です。なぜなら、10 を 3 で割ると商が 3 で余りが 1 だからです。
数が 2 で割り切れる場合、つまり 2 で割った余りが 0 の場合、その数は偶数です。2 で割った余りが 1 の場合、その数は奇数です。
数が奇数かどうかをチェックする新しい Java プログラムを作成しましょう。
HelloJava.java
ファイルが WebIDE エディタで開かれていない場合は、開きます。
ファイルの内容全体を次のコードに置き換えます。
import java.util.Scanner;
public class HelloJava {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter an integer: ");
int number = scanner.nextInt();
// Check if the number is odd using the modulo operator
if (number % 2 != 0) {
System.out.println(number + " is an odd number.");
} else {
System.out.println(number + " is an even number.");
}
scanner.close();
}
}
コードの新しい部分を見てみましょう。
int number = scanner.nextInt();
: この行は、ユーザーが入力した整数値を読み取り、number
という名前の変数に格納します。if (number % 2 != 0)
: これは if
文で、プログラムが判断を行うことを可能にします。number
を 2 で割った余りが 0 で ない かどうかをチェックします。!=
記号は「等しくない」を意味します。System.out.println(number + " is an odd number.");
: この行は、if
文の条件が真の場合(数が奇数の場合)に実行されます。else
: このキーワードは、if
文の条件が偽の場合(数が偶数の場合)に実行されるコードブロックを導入します。System.out.println(number + " is an even number.");
: この行は、数が偶数の場合に実行されます。ファイルを保存します(Ctrl+S または Cmd+S)。
ターミナルで修正したプログラムをコンパイルします。
javac HelloJava.java
エラーがなければ、HelloJava.class
ファイルが作成されます。
コンパイルしたプログラムを実行します。
java HelloJava
プログラムは整数の入力を求めます。数を入力し(たとえば 7)、Enter キーを押します。プログラムは、その数が奇数か偶数かを表示します。
Enter an integer: 7
7 is an odd number.
プログラムを再度実行し、偶数を入力します(たとえば 10)。
Enter an integer: 10
10 is an even number.
剰余演算子と if-else
文を使用して、数が奇数か偶数かをチェックすることに成功しました。これは、条件に基づいてプログラムの流れを制御するためのプログラミングの基本的な概念です。
前のステップでは、整数が奇数か偶数かを正常にチェックすることができました。今回は、剰余演算子(modulo operator)が異なる型の数値、特に負の整数でどのように動作するかを調べてみましょう。
奇数と偶数の概念は通常、整数に適用されます。ただし、Java では負の数に対する剰余演算子の動作が数学的な定義とは異なる場合があるため、その動作を理解することが重要です。
Java では、剰余演算 (a % b
) の結果は被除数 (a
) と同じ符号になります。
プログラムを修正して、負の数でテストしてみましょう。
WebIDE エディタで HelloJava.java
ファイルを開きます。
現在のコードではすでに整数を読み取ることができます。同じコードを使用して、プログラムを実行する際に負の数を入力するだけです。
import java.util.Scanner;
public class HelloJava {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter an integer: ");
int number = scanner.nextInt();
// Check if the number is odd using the modulo operator
if (number % 2 != 0) {
System.out.println(number + " is an odd number.");
} else {
System.out.println(number + " is an even number.");
}
scanner.close();
}
}
ファイルを保存します(Ctrl+S または Cmd+S)。
最新バージョンのプログラムを確認するために、再度コンパイルします。
javac HelloJava.java
プログラムを実行します。
java HelloJava
入力を求められたら、負の奇数(例:-7)を入力し、出力を確認します。
Enter an integer: -7
-7 is an odd number.
-7 を 2 で割ると -3 余り -1 となり、-1 は 0 ではないため、if
文の条件 number % 2 != 0
が真となり、出力は -7 が奇数であると正しく識別します。
再度プログラムを実行し、負の偶数(例:-10)を入力します。
Enter an integer: -10
-10 is an even number.
-10 を 2 で割ると -5 余り 0 となり、if
文の条件 number % 2 != 0
が偽となり、else
ブロックが実行され、出力は -10 が偶数であると正しく識別します。
これにより、現在の剰余演算子を使用した奇数/偶数のチェックロジックが、Java で正の整数と負の整数の両方に対して正しく動作することが示されました。重要なのは、奇数を 2 で割った余りは常に 0 でなく(1 または -1)、偶数を 2 で割った余りは常に 0 になるということです。
前のステップでは、剰余演算子(modulo operator)を使って数が奇数か偶数かをチェックする方法を学びました。現在のプログラムでは、if-else
文を使って両方のケースを処理しています。
このステップでは、コードを見直し、if-else
構造が偶数と奇数のチェックをどのように効果的に組み合わせているかを理解しましょう。
前のステップで使ったコードを思い出してみましょう。
import java.util.Scanner;
public class HelloJava {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter an integer: ");
int number = scanner.nextInt();
// Check if the number is odd using the modulo operator
if (number % 2 != 0) {
System.out.println(number + " is an odd number.");
} else {
System.out.println(number + " is an even number.");
}
scanner.close();
}
}
ロジックを再度分解してみましょう。
number % 2 != 0
は、number
を 2 で割った余りが 0 で ない かどうかをチェックします。true
の場合、その数は奇数であり、if
ブロック内のコード System.out.println(number + " is an odd number.");
が実行されます。number % 2 != 0
が false
の場合、余りが 0 であることを意味します。この場合、その数は偶数であり、else
ブロック内のコード System.out.println(number + " is an even number.");
が実行されます。この if-else
構造は、2 つの相互排他的な可能性(数が奇数か偶数か)を処理する非常に一般的な方法です。整数の場合、数が奇数でなければ偶数であるため、偶数のチェックを別途行う必要はありません。
このステップを完了するには、HelloJava.java
ファイルに上記の正しいコードが含まれていることを確認してください。
WebIDE エディタで HelloJava.java
ファイルを開きます。
コードが上記の例と一致していることを確認します。これには、import
文、Scanner
の使用、入力のプロンプト、整数の読み取り、剰余チェックを含む if-else
文、および Scanner
のクローズが含まれます。
変更を加えた場合は、ファイルを保存します(Ctrl+S または Cmd+S)。
最後に一度、プログラムをコンパイルして確認します。
javac HelloJava.java
プログラムを実行し、奇数と偶数(正と負)の両方でテストして、期待通りに動作することを確認します。
java HelloJava
奇数の場合の出力例:
Enter an integer: 9
9 is an odd number.
偶数の場合の出力例:
Enter an integer: -4
-4 is an even number.
これで、剰余演算子と if-else
文を使って整数が奇数か偶数かを判断する Java プログラムを正常に実装し、検証することができました。この条件ロジックの基本概念は、より複雑なプログラムを構築するために重要です。
この実験(Lab)では、Java で剰余演算子 (%
) を使って数が奇数か偶数かを判断する方法を学びました。2 で割った余りが 0 の場合、その数は偶数であり、余りが 1 の場合、奇数であることを見つけました。このロジックを、ユーザー入力を受け取り、その数が奇数か偶数かを表示する Java プログラムに実装しました。
また、様々な数値型でこのチェックを検証する方法と、if-else
文を使って偶数と奇数のチェックのロジックを 1 つのプログラム内で組み合わせる方法を調べました。この実践的な経験を通じて、基本的な数の特性チェックにおける Java の条件文と剰余演算子について実用的な理解を得ることができました。