2023.03.08

Javaプログラミング

キーボードで実数(double)を入力

Scannerクラスを使って、キーボードで実数(double)を入力する方法を解説します。

学習用のプログラム作成などで、キーボード入力で値を取得する場合に活躍するのがScannerクラスです。

ここでは、キーボードを使って入力された文字を実数型(double)の変数に代入する方法を解説しています。

ソースコードを簡単にするために、キーボードで入力した値のエラーを判定する処理は入れていません。そのため、エラーがある場合はプログラムが強制終了します。

Javaソースコード

キーボードで入力された値をdouble型変数に代入し、その値をコンソール出力するJavaソースコードです。

入力された値が実数値がどうかの判定処理はしていません。

Scannertodouble1.java

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
import java.util.Scanner;

public class Scannertodouble1 {
	public static void main( String[] args ) {
		// メッセージを表示
		System.out.println( "実数を入力してください" );

		// Scannerを作成
		Scanner scan = new Scanner( System.in );

		// 入力された値をdouble型の値に変換して変数に代入
		double value = scan.nextDouble();

		// 変数valueの値をコンソール出力
		System.out.println( "入力した実数は、" + value );
	}
}

実行結果

コンパイル ソースコードが「ANSI」の場合

C:\talavax\javasample>javac -encoding sjis Scannertodouble1.java

コンパイル ソースコードが「UTF-8」の場合

C:\talavax\javasample>javac Scannertodouble1.java

実行例1

C:\talavax\javasample>java Scannertodouble1
実数を入力してください
0.3

出力結果

入力した実数は、0.3

キーボードで入力した3が出力されています。

実行例2

C:\talavax\javasample>java Scannertodouble1
実数を入力してください
20.55 8.9

出力結果

入力した実数は、20.55

キーボードで入力した"20.55 8.9"は、20.55と8.9が半角スペースで区切られているので、区切りの先頭の20.55が出力されています。

実行例3

C:\talavax\javasample>java Scannertodouble1
実数を入力してください
0.00003

出力結果

入力した実数は、3.0E-5

キーボードで入力した"0.00003"が、指数表記の3.0E-5で出力されています。これは出力が指数表記になっているだけで変数には0.0000が正しく代入されています。

実行例4

C:\talavax\javasample>java Scannertodouble1
実数を入力してください
10e-4

出力結果

入力した実数は、0.001

キーボードで入力した指数表記の値"10e-4"(10のマイナス4乗)が、0.001で出力されています。

実行例5

C:\talavax\javasample>java Scannertodouble1
実数を入力してください
1234

出力結果

入力した実数は、1234.0

キーボードで入力した整数の値"1234"が、1234.0で出力されています。

実行例6

C:\talavax\javasample>java Scannertodouble1
実数を入力してください
A

出力結果

Exception in thread "main" java.util.InputMismatchException
        at java.base/java.util.Scanner.throwFor(Scanner.java:943)
        at java.base/java.util.Scanner.next(Scanner.java:1598)
        at java.base/java.util.Scanner.nextDouble(Scanner.java:2569)
        at Scannertodouble1.main(Scannertodouble1.java:12)

キーボードで入力したAは数値ではないので、プログラムがエラーメッセージを出力して強制終了しました。

Javaソースコードの解説

001
import java.util.Scanner;

Javaクラスライブラリの中から「java.util.Scanner」というパッケージにあるクラスを使うために記述しています。

003
public class Scannertodouble1 {

クラス名を、Scannertodouble1としています。

004
	public static void main( String[] args ) {

このmainメソッドからプログラムを実行します。

005
006
		// メッセージを表示
		System.out.println( "実数を入力してください" );

printlnメソッドで、メッセージ”実数を入力してください”をコンソール出力しています。

008
009
		// Scannerを作成
		Scanner scan = new Scanner( System.in );

標準入力System.inを使って、Scannerクラスscanを初期化しています。

011
012
		// 入力された値をdouble型の値に変換して変数に代入
		double value = scan.nextDouble();

nextDoubleメソッドで、キーボードから入力された1行を読み取り、その値をdouble型変数valueに代入しています。

ここで、入力待ち状態になり、Enterキーが押されるまでに入力した値が変数valueに格納されます。

キーボードで入力した文字が、半角のスペースで区切られている場合、区切られた1番目の実数値(double)が変数valueに代入されます。

以下は、入力例と変数valueに格納される値の例です。

入力された文字が"2.0"の場合、変数value=2.0になります。
入力された文字が"-6.0"の場合、変数value=-6.0になります。
入力された文字が"+3.0"の場合、変数value=-3.0になります。プラス(+)記号があってもエラーになりません。
入力された文字が"32.6 4.4 27.1"の場合、変数value=32.6になります。半角スペースで区切られた1番目の値は、32.6です。
入力された文字が"24.0  A"の場合、変数value=24.0になります。半角スペースで区切られた1番目の値は、24.0です。
入力された文字が"D  132"の場合、'D'が数値でないため、エラーとなり、プログラムが強制終了します。半角スペースで区切られた1番目の値は、Dです。
入力された文字が"128"の場合、変数value=128.0になります。'128'に小数点はありませんがエラーになりません。
入力された文字が"100e2"の場合、変数value=10000.0になります。'100e2'は指数表記で、100の2乗を表しているので値は10000になります。

キーボードの"Ctrl"キーを押しながら"C"を押すと強制終了します。

014
015
		// 変数valueの値をコンソール出力
		System.out.println( "入力した実数は、" + value );

変数valueの値をprintlnメソッドコンソール出力しています。

キーボード入力に関するコンテンツ

キーボードを使って値を入力する方法を解説しています。ソースコード付きです。

2020.08.19

キーボードを使って整数値を入力する方法を解説しています。Scannerクラスを利用しています。

2023.03.08

キーボードを使って整数値を2つ入力る方法を解説しています。Scannerクラスを利用しています。

2023.03.16

キーボードを使って入力した整数値を2乗する方法を解説しています。

2023.03.10

キーボードを使って入力した整数値の絶対値を求める方法を解説しています。

2023.03.10

キーボードで入力された実数の角度からsin(サイン)、cos(コサイン)を計算し、コンソール出力する方法を解説します。

2023.04.10

キーボードを使って実数値(double)を2つ入力する方法を解説しています。Scannerクラスを利用しています。

2023.03.16

キーボードで入力した整数値を配列に格納するメソッドの作り方を解説しています。

2020.08.19

前のコンテンツ

キーボードを使って整数値を入力する方法を解説しています。Scannerクラスを利用しています。

2023.03.08

関連コンテンツ

Javaの学習に役立つソースコードを多数紹介しています。是非、ご覧ください。

2022.09.10

変数やクラスに格納されている値をコンソール出力する方法は?

2020.03.23

コンピュータを制御するために使用する入力機能と出力機能を持つ装置のことをコンソールといいます。興味のある方は、ご覧ください。

2020.08.24

Integerクラスについて、ソースコードを使って詳しく説明しています。

2020.03.23

プログラムの最初に実行されるメソッドは?

2022.12.13

プログラミングで使う変数って何?

2020.03.23

Javaのプログラムを書いてみませんか?プログラムの書き方をくわしく説明しています。

2020.03.23

「Javaソースコード」から実行可能な「オブジェクトコード」に変換する方法をくわしく説明しています。

2020.03.23

Javaのプログラムを作ってみませんか?プログラミングに必要なものの用意から実行までを説明しています。

2020.03.23

Swingパッケージを使ってグラフィック表示を行う方法を解説しています。

2020.03.23

画像フォーマット形式・色・大きさ・傾きなどの変更、特定の図形(文字・記号など)を見つけたり、取り出したりする画像処理について詳しく解説。

2015.11.29

繰り返し処理を使ったJavaのソースコードサンプルを紹介しています。

2020.03.23

配列を使うJavaソースコードを多数紹介しています。

2021.05.18

数学に関係するJavaのメソッドやソースコードなどを紹介しています。

2022.10.25

三角形、台形、円などいろいろな図形の面積を計算するプログラムを紹介しています。詳しくは、記事をご覧ください。

2021.05.18

StringクラスとStringBuilderクラスを利用したプログラミングの仕方を紹介しています。

2016.12.16

Javaを使った簡単な応用プログラム(生年月日から年齢を計算プログラムなど)を紹介しています。

2022.07.07

プログラミング、ITに関する用語をまとめています。

2022.10.17

日本で使われてきた伝統文様「和柄」について解説しています。

2022.07.27

キーボードを使って整数値を入力する方法を解説しています。Scannerクラスを利用しています。

2023.03.08

Javaプログラムの構成について解説しています。詳しくは、こちらをご覧ください。

2020.03.23

キーボードを使って値を入力する方法を解説しています。ソースコード付きです。

2020.08.19

プログラミング言語とは?種類や特徴について説明しています。

2022.08.03

指数表記は、非常に大きな数値や、0に近い小さい数値を表現するときに使われる表記方法の1つです。興味のある方は、記事をご覧ください。

2020.03.23

自然数と整数って何が違う?

2020.03.23

「ゆるゆるプログラム」のコンテンツを紹介しています。興味のある方はこの記事をご覧ください。

2020.03.23

キーボードを使って実数値(double)を2つ入力する方法を解説しています。Scannerクラスを利用しています。

2023.03.16

キーボードで入力された実数の角度からsin(サイン)、cos(コサイン)を計算し、コンソール出力する方法を解説します。

2023.04.10

広告