Java – キーボードからdouble型(実数)を入力する方法
Javaでキーボードからdouble型の実数を入力するには、標準入力を扱うScanner
クラスを使用します。
Scanner
オブジェクトを作成し、nextDouble()
メソッドを呼び出すことで実数を取得できます。
例えば、Scanner scanner = new Scanner(System.in); double value = scanner.nextDouble();
のように記述します。
入力時には適切な形式(例: 小数点を含む数値)で値を提供する必要があります。
キーボード入力の基本とScannerクラスの概要
Javaでキーボードからの入力を扱うためには、Scanner
クラスを使用します。
このクラスは、標準入力からデータを読み取るための便利なメソッドを提供しています。
以下に、Scanner
クラスの基本的な使い方とその特徴をまとめます。
特徴 | 説明 |
---|---|
インポートが必要 | import java.util.Scanner; を使用する必要があります。 |
データ型のサポート | nextInt() , nextDouble() , nextLine() など、様々なデータ型に対応しています。 |
自動的な空白処理 | 空白や改行を自動的に処理し、次の入力を待ちます。 |
Scanner
クラスを使うことで、ユーザーからの入力を簡単に取得し、プログラム内で利用することができます。
次のセクションでは、具体的にScanner
を使ってdouble型の入力を行う方法について解説します。
Scannerを使ったdouble型の入力方法
Scanner
クラスを使用して、キーボードからdouble型の実数を入力する方法を見ていきましょう。
以下のサンプルコードでは、ユーザーにdouble型の数値を入力してもらい、その値を表示するプログラムを示します。
import java.util.Scanner; // Scannerクラスをインポート
public class App {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); // Scannerオブジェクトの作成
System.out.print("実数を入力してください: "); // ユーザーへのメッセージ
double inputNumber = scanner.nextDouble(); // double型の入力を取得
System.out.println("入力された実数は: " + inputNumber); // 入力された値を表示
scanner.close(); // Scannerオブジェクトを閉じる
}
}
このプログラムでは、以下の手順でdouble型の入力を行っています。
Scanner
クラスをインポートし、Scanner
オブジェクトを作成します。- ユーザーに実数の入力を促すメッセージを表示します。
nextDouble()
メソッドを使用して、ユーザーからの入力をdouble型として取得します。- 入力された値をコンソールに表示します。
- 最後に、
Scanner
オブジェクトを閉じてリソースを解放します。
以下は、上記のプログラムを実行した際の出力結果の例です。
実数を入力してください: 3.14
入力された実数は: 3.14
このように、Scanner
クラスを使うことで簡単にdouble型の入力を受け取ることができます。
次のセクションでは、入力エラーへの対処方法について解説します。
入力エラーへの対処方法
ユーザーからの入力を受け取る際には、意図しないデータが入力されることがあります。
特に、double型の入力を期待している場合に、文字列や不正な数値が入力されると、プログラムはエラーを発生させます。
これを防ぐために、Scanner
クラスを使用した入力エラーへの対処方法を見ていきましょう。
以下のサンプルコードでは、ユーザーが正しいdouble型の数値を入力するまで繰り返し入力を促すプログラムを示します。
import java.util.Scanner; // Scannerクラスをインポート
public class App {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); // Scannerオブジェクトの作成
double inputNumber = 0; // 入力された数値を格納する変数
boolean validInput = false; // 入力が有効かどうかのフラグ
while (!validInput) { // 有効な入力が得られるまでループ
System.out.print("実数を入力してください: "); // ユーザーへのメッセージ
if (scanner.hasNextDouble()) { // 次の入力がdouble型か確認
inputNumber = scanner.nextDouble(); // double型の入力を取得
validInput = true; // 有効な入力が得られたのでフラグを更新
} else {
System.out.println("無効な入力です。再度実数を入力してください。"); // エラーメッセージ
scanner.next(); // 不正な入力を消費
}
}
System.out.println("入力された実数は: " + inputNumber); // 入力された値を表示
scanner.close(); // Scannerオブジェクトを閉じる
}
}
このプログラムでは、以下の手順で入力エラーに対処しています。
while
ループを使用して、有効な入力が得られるまで繰り返し処理を行います。hasNextDouble()
メソッドを使用して、次の入力がdouble型であるかを確認します。- 有効な入力が得られた場合は、
nextDouble()
メソッドで値を取得し、フラグを更新します。 - 無効な入力があった場合は、エラーメッセージを表示し、
next()
メソッドで不正な入力を消費します。
以下は、上記のプログラムを実行した際の出力結果の例です。
実数を入力してください: abc
無効な入力です。再度実数を入力してください。
実数を入力してください: 3.14
入力された実数は: 3.14
このように、Scanner
クラスを使うことで、ユーザーからの入力エラーに対処し、プログラムの安定性を向上させることができます。
次のセクションでは、他のデータ型との組み合わせについて解説します。
応用: 他のデータ型との組み合わせ
Scanner
クラスは、double型だけでなく、さまざまなデータ型の入力を扱うことができます。
ここでは、Scanner
を使って他のデータ型(整数型や文字列型)と組み合わせて、より複雑な入力を処理する方法を紹介します。
以下のサンプルコードでは、ユーザーに整数型の値とdouble型の値を入力してもらい、それらを使って簡単な計算を行うプログラムを示します。
import java.util.Scanner; // Scannerクラスをインポート
public class App {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); // Scannerオブジェクトの作成
System.out.print("整数を入力してください: "); // ユーザーへのメッセージ
int integerInput = scanner.nextInt(); // 整数型の入力を取得
System.out.print("実数を入力してください: "); // ユーザーへのメッセージ
double doubleInput = scanner.nextDouble(); // double型の入力を取得
double result = integerInput + doubleInput; // 整数と実数の合計を計算
System.out.println("整数と実数の合計は: " + result); // 結果を表示
scanner.close(); // Scannerオブジェクトを閉じる
}
}
このプログラムでは、以下の手順で異なるデータ型の入力を処理しています。
nextInt()
メソッドを使用して、ユーザーから整数型の値を取得します。nextDouble()
メソッドを使用して、ユーザーからdouble型の値を取得します。- 取得した整数と実数を加算し、その結果を表示します。
- 最後に、
Scanner
オブジェクトを閉じてリソースを解放します。
以下は、上記のプログラムを実行した際の出力結果の例です。
整数を入力してください: 5
実数を入力してください: 3.14
整数と実数の合計は: 8.14
このように、Scanner
クラスを使うことで、異なるデータ型の入力を組み合わせて、より複雑な処理を行うことができます。
次のセクションでは、double型を使った簡単な計算プログラムの実践例について解説します。
実践例: double型を使った簡単な計算プログラム
ここでは、Scanner
クラスを使用してdouble型の入力を受け取り、簡単な計算を行うプログラムの実践例を示します。
このプログラムでは、ユーザーに2つの実数を入力してもらい、それらの合計、差、積、商を計算して表示します。
以下がそのサンプルコードです。
import java.util.Scanner; // Scannerクラスをインポート
public class App {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); // Scannerオブジェクトの作成
System.out.print("1つ目の実数を入力してください: "); // ユーザーへのメッセージ
double firstNumber = scanner.nextDouble(); // 1つ目の実数を取得
System.out.print("2つ目の実数を入力してください: "); // ユーザーへのメッセージ
double secondNumber = scanner.nextDouble(); // 2つ目の実数を取得
// 計算を行う
double sum = firstNumber + secondNumber; // 合計
double difference = firstNumber - secondNumber; // 差
double product = firstNumber * secondNumber; // 積
double quotient = firstNumber / secondNumber; // 商
// 結果を表示
System.out.println("合計: " + sum); // 合計を表示
System.out.println("差: " + difference); // 差を表示
System.out.println("積: " + product); // 積を表示
System.out.println("商: " + quotient); // 商を表示
scanner.close(); // Scannerオブジェクトを閉じる
}
}
このプログラムでは、以下の手順で計算を行っています。
- ユーザーに1つ目の実数を入力してもらい、
firstNumber
に格納します。 - ユーザーに2つ目の実数を入力してもらい、
secondNumber
に格納します。 - それぞれの計算(合計、差、積、商)を行い、結果を変数に格納します。
- 計算結果をコンソールに表示します。
- 最後に、
Scanner
オブジェクトを閉じてリソースを解放します。
以下は、上記のプログラムを実行した際の出力結果の例です。
1つ目の実数を入力してください: 5.5
2つ目の実数を入力してください: 2.2
合計: 7.7
差: 3.3
積: 12.1
商: 2.5
このように、Scanner
クラスを使ってdouble型の入力を受け取り、簡単な計算を行うプログラムを作成することができます。
これにより、ユーザーからの入力を活用した実用的なアプリケーションを構築することが可能になります。
まとめ
この記事では、JavaのScanner
クラスを使用してキーボードからdouble型の実数を入力する方法について詳しく解説しました。
具体的には、基本的な使い方から入力エラーへの対処、他のデータ型との組み合わせ、そして実際の計算プログラムの例を通じて、実用的なスキルを身につけることができました。
これを機に、実際のプログラムにScanner
を活用して、ユーザーからの入力を取り入れたアプリケーションを作成してみてください。