2021/05/19 公開
・各位(くらい)を求める
与えられた整数値の1の位(くらい)の値を計算し、その整数値を10で割っていきます(小数点以下切り捨て)。この計算を整数値が0になるまで繰り返します。
整数値の1の位の値は、整数値を10で割った余りです。以下に具体的な整数値の例で値の動きを確認していきましょう。
・整数値、1285
<1285を10で割った余り>
1285÷10=128余り5
この余り5が1の位の値です。
<1285を10で割る>
1285÷10=128
小数点以下切り捨てです。
<128を10で割った余り>
128÷10=12余り8
この余り8が10の位の値です。
<128を10で割る>
128÷10=12
小数点以下切り捨てです。
<12を10で割った余り>
12÷10=1余り2
この余り2が100の位の値です。
<12を10で割る>
12÷10=1
小数点以下切り捨てです。
<1を10で割った余り>
1÷10=0余り1
この余り1が1000の位の値です。
<1を10で割る>
1÷10=0
小数点以下切り捨てです。
ここで整数値が0になったので処理を終了します。
結果は、1の位が5、10の位が8、100の位が2、1000の位が1となりました。
このように10で割った余りの計算と、10で割る計算を繰り返すことで1、10、100…の位の値を取得することができます。
以下は、上記の計算を行うJavaのソースコードです。整数値はキーボードで入力します。
Places1.java ← クリックしてダウンロードページに移動001: import java.util.Scanner; 002: 003: public class Places1 { 004: public static void main( String[] args ) { 005: // 整数の値をキーボードから入力 006: Scanner scanner = new Scanner( System.in ); 007: System.out.print( "整数の値を入力してください:" ); 008: String line = scanner.next(); 009: 010: // 文字列を整数の値に変換 011: int num = Integer.parseInt( line ); 012: 013: // 各位を計算してコンソール出力 014: for ( int place = 1; ; place *= 10 ) { 015: // 各桁の値を計算 016: int n = ( num % 10 ); 017: System.out.println( place + "の位: " + n ); 018: 019: // 値を10で割る(小数点以下切り捨てになる) 020: num /= 10; 021: 022: // 終了判定 023: if ( 0 == num ) break; 024: } 025: } 026: }
Places1実行
C:\talavax\javasample>java Places1
キーボードで整数値を入力して、各位(くらい)の値を求めます。
Places1.javaの出力結果
整数の値を入力してください: 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: int n = ( num % 10 ); 017: System.out.println( place + "の位: " + n );
各位(くらい)の値をコンソール出力しています。この値は、変数numの値を10で割った余りで計算しています。
019: // 値を10で割る(小数点以下切り捨てになる) 020: num /= 10;
変数numの値を10で割っています。
022: // 終了判定 023: if ( 0 == num ) break;
変数numの値が0がどうかをif文で判定し、0の場合にbreak文でfor文を抜けます。
以上です。
■関連コンテンツ
指定した位の値を求める | 指定した位の値は? |
break文 | ループから処理から抜け出る |
キーボード入力 | ScannerクラスとSystem.inを使用 |
値のコンソール表示 | print()、println()とは? |
三項演算子 | 三項演算子について解説 |
10のN乗かを判定 | 1、10、100 … |
![]() |
剰余(余り)計算剰余(余り)をを計算するプログラムの紹介と、その結果を表示する方法を解説 |
![]() |
for文繰り返し処理に使用するfor文をJavaのソースコードを使って説明しています。 |
![]() |
if文条件による処理の分岐に使用するif文について解説 |
![]() |
計算結果の表示足し算(加法)/引き算(減法)/掛け算(乗法)/割り算(除法)の使い方を説明 |
■新着情報
2022.07.07 | 外部プログラムの実行 | exeファイル実行 |
2022.07.06 | 完全数 | 6=1+2+3 |
■広告
