2021.05.19

数学

各位(くらい)の値を求める

与えられた整数値の1の位(くらい)の値を計算し、その整数値を10で割っていきます(小数点以下切り捨て)。

この計算を整数値が0になるまで繰り返します。

整数値の1の位の値は、整数値を10で割った余りです。以下に具体的な整数値の例で値の動きを確認していきましょう。

整数値1285

<1285を10で割った余り>

1285÷10=128余り

この余り1の位の値です。

<1285を10で割る>

1285÷10=128

小数点以下切り捨てです。

<128を10で割った余り>

128÷10=12余り

この余り10の位の値です。

<128を10で割る>

128÷10=12

小数点以下切り捨てです。

<12を10で割った余り>

12÷10=1余り

この余り100の位の値です。

<12を10で割る>

12÷10=

小数点以下切り捨てです。

<1を10で割った余り>

1÷10=0余り

この余り1000の位の値です。

<1を10で割る>

1÷10=

小数点以下切り捨てです。

ここで割り算の結果が0になったので処理を終了します。

結果は、1の位が、10の位が、100の位が、1000の位がとなりました。

このように10で割った余りの計算と、10で割る計算を繰り返すことで1、10、100…の位の値を取得することができます。

Javaソースコード

以下は、上記の計算を行うJavaソースコードです。整数値はキーボードで入力します。

Places1.java

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
import java.util.Scanner;

public class Places1 {
	public static void main( String[] args ) {
		// 整数の値をキーボードから入力
		Scanner scanner = new Scanner( System.in );
		System.out.print( "整数の値を入力してください:" );
    		String line = scanner.next();

		// 文字列を整数の値に変換
		int num = Integer.parseInt( line );

		// 各位を計算してコンソール出力
		for ( int place = 1; ; place *= 10 ) {
			// 各桁の値を計算
			int n = ( num % 10 );
			System.out.println( place + "の位: " + n );

			// 値を10で割る(小数点以下切り捨てになる)
			num /= 10;
		
			// 終了判定
			if ( 0 == num ) break;
		}
	}
}

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

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

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

C:\talavax\javasample>javac Places1.java

実行

C:\talavax\javasample>java Places1

キーボードで整数値を入力して、各位(くらい)の値を求めます。

出力結果

整数の値を入力してください: 1285
1の位: 5
10の位: 8
100の位: 2
1000の位: 1

ここからは、このソースコードを上から順番に解説していきます。

001
import java.util.Scanner;

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

003
public class Places1 {

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

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

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

005
006
		// 整数の値をキーボードから入力
		Scanner scanner = new Scanner( System.in );

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

007
		System.out.print( "整数の値を入力してください:" );

printメソッドで、"整数の値を入力してください:" をコンソール出力しています。printメソッドを使っているので、コンソール入力した文字はメッセージの右側に表示されます。printlnメソッドを使った場合、コンソール入力した文字はメッセージの下の行に表示されます。

008
    		String line = scanner.next();

nextメソッドで、キーボードから入力された1行を読み取り、String型のlineに代入しています。

ここで、入力待ち状態になり、Enterキーが押されるまでの入力文字がlineに格納されます。キーボードの"Ctrl"キーを押しながら"C"を押すと強制終了します。

010
011
		// 文字列を整数の値に変換
		int num = Integer.parseInt( line );

IntegerクラスのparseIntメソッドで、文字列lineを整数numに変換しています。

013
014
		// 各位を計算してコンソール出力
		for ( int place = 1; ; place *= 10 ) {

ここからは、各位(くらい)を求める処理です。

for文無限ループを作成しています(条件式なし)。int型変数placeは、結果をコンソール出力するときに使う位(くらい)の値で、1→10→100→1000→…と変化していきます。

"place*=10"は三項演算子を使った書き方で、"place=place*10"と同じです。

015
016
017
			// 各桁の値を計算
			int n = ( num % 10 );
			System.out.println( place + "の位: " + n );

各位(くらい)の値をコンソール出力しています。この値は、変数numの値を10で割った余りで計算しています。

019
020
			// 値を10で割る(小数点以下切り捨てになる)
			num /= 10;

変数numの値を10で割っています。

022
023
			// 終了判定
			if ( 0 == num ) break;

変数numの値が0がどうかをif文で判定し、0の場合にbreak文for文を抜けます。

以上です。

関連コンテンツ

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

2022.10.25

整数値の指定した位を求める方法を詳しく解説しています。

2020.03.23

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

2020.08.19

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

2020.03.23

割り算で割り切れずに残った端数を剰余(余り)といいます。この剰余の計算をJavaのソースコードを使って解説しています。

2020.03.23

条件式を判断して処理を分岐する方法を詳しく説明しています。

2023.03.20

基本的な計算である足し算(加法)/引き算(減法)/掛け算(乗法)/割り算(除法)を行うプログラム作成。

2020.03.23

繰り返し処理(ループ)から強制的に抜けかたについて解説しています。

2017.07.14

条件式によって値を切り替えるときに使用する演算子について解説しています。

2020.03.23

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

2020.03.23

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

2022.09.10

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

2022.07.07

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

2022.10.17

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

2022.12.13

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

2020.03.23

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

2020.03.23

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

2020.03.23

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

2020.03.23

Javaの演算子'/'を使って割り算を行った結果と注意点などについて説明。

2020.03.23

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

2022.08.03

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

2020.03.23

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

2020.08.24

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

2016.12.16

メソッドの定義方法を詳しく解説しています。Javaのサンプルソースコードを使った説明もあります。

2020.03.23

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

2020.03.23

処理を繰り返すために使用するfor文について解説しています。

2020.03.23

繰り返し処理の作り方を解説しています。

2016.03.02

for文で変数名iがよく使われる理由について説明しています。興味のある方は是非。

2022.08.29

広告