2023.04.23

Javaプログラミング

整数の桁数を求める(while文を使用)

ここでは、与えられた整数の桁数を求めるプログラムの作り方を説明します。while文を使っています。

以下のように、数字が並んでいる数を桁数とします。0の場合は桁数を0とします。

100000  →  6桁
-123    →  3桁
0       →  0桁(桁なし)

Javaソースコード

while文を使って、整数の桁数を求めるソースコードです。

Digit_While_1.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
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
public class Digit_While_1 {
	// 整数の桁数を求めるメソッド
	private static int digit( int a )
	{
		// 桁数を格納する変数
		int digit = 0;

		// 桁数を求める
		// aを10で割っていき、a=0になるまで処理を繰り返す
		while ( 0 != a ) {
			// aを10で割る
			a = a / 10;

			// 桁数を増やす
			++ digit;
		}

		// 桁数を戻す
		return digit;
	}


	// メイン
	public static void main( String[] args ) {
		// 桁数を求める値を格納する変数
		int a;

		// 求めた桁数を格納する変数
		int d;

		// 531の桁数を求める
		a = 531;
		d = digit( a );
		System.out.println( a + "の桁数は、" + d );

		// -23473の桁数を求める
		a = -23473;
		d = digit( a );
		System.out.println( a + "の桁数は、" + d );

		// 0の桁数を求める
		a = 0;
		d = digit( a );
		System.out.println( a + "の桁数は、" + d );
	}
}

実行結果

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

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

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

C:\talavax\javasample>javac Digit_While_1.java

実行

C:\talavax\javasample>java Digit_While_1

出力結果

531の桁数は、3
-23473の桁数は、5
0の桁数は、0

Javaソースコードの解説

ここから、ソースコードを説明していきます。

001
public class Digit_While_1 {

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

002
003
004
	// 整数の桁数を求めるメソッド
	private static int digit( int a )
	{

整数の桁数を求めるdigitメソッドです。引数aの桁数を求めて桁数を戻します。

005
006
		// 桁数を格納する変数
		int digit = 0;

桁数を格納するint型変数digitです。

008
009
010
		// 桁数を求める
		// aを10で割っていき、a=0になるまで処理を繰り返す
		while ( 0 != a ) {

変数aの桁数を求めるコードです。

aを10で割っていき、a=0になるまでの割り算の回数を桁数としています。

while文継続条件式( 0 != a)とすることで、変数aの値が0になるまで処理を繰り返します。

011
012
			// aを10で割る
			a = a / 10;

変数aを10で割っています。10で割り切れない場合は小数点以下の値は切り捨てになります。

例えば、13を10で割ると13/10=1、19を10で割ると19/10=1となります。

014
015
			// 桁数を増やす
			++ digit;

桁を表す変数digitを1ずつ増やしています。ここでは、インクリメント(++)を使っています。

++ digit;」の代わりに、「digit ++;」 または、「digit = digit + 1;」 または、代入演算子を使って「digit += 1;」と記述してもよいです。

023
024
	// メイン
	public static void main( String[] args ) {

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

025
026
		// 桁数を求める値を格納する変数
		int a;

桁数を求める値を格納する変数aを宣言しています。

028
029
		// 求めた桁数を格納する変数
		int d;

桁数を求める値を格納する変数aを宣言しています。

031
032
033
034
		// 531の桁数を求める
		a = 531;
		d = digit( a );
		System.out.println( a + "の桁数は、" + d );

変数aに531を代入し、その値をdigitメソッドに渡しています。求めた桁数digitをprintln文でコンソール出力しています。

036
037
038
039
		// -23473の桁数を求める
		a = -23473;
		d = digit( a );
		System.out.println( a + "の桁数は、" + d );

変数aに-23473を代入し、その値をdigitメソッドに渡しています。求めた桁数digitをprintln文でコンソール出力しています。

041
042
043
044
		// 0の桁数を求める
		a = 0;
		d = digit( a );
		System.out.println( a + "の桁数は、" + d );

変数aに0を代入し、その値をdigitメソッドに渡しています。求めた桁数digitをprintln文でコンソール出力しています。

以上です。

次のコンテンツ

与えられた整数の桁数を求めるプログラムの作り方を説明します。for文を使っています。

2023.04.23

関連コンテンツ

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

2022.09.10

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

2016.01.26

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

2016.03.02

メソッドを抜けるときに使用するreturn文について説明しています。

2020.03.20

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

2020.03.23

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

2022.12.13

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

2020.03.23

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

2020.03.23

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

2020.03.23

与えられた整数の桁数を求めるプログラムの作り方を説明します。for文を使っています。

2023.04.23

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

2020.03.23

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

2020.03.23

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

2020.03.23

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

2020.03.23

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

2020.03.23

割り算で「割り切れる」、「割り切れない」ってどういうこと?

整数型の変数に1を足すインクリメント、1つ引くデクリメントについて詳しく説明しています。

2020.03.23

変数に値を代入する演算子について詳しく解説しています。サンプルのソースコード付きです。

2020.03.23

広告