2023.04.23

Javaプログラミング

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

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

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

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

Javaソースコード

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

Digit_For_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
047
048
049
public class Digit_For_1 {
	// 整数の桁数を求めるメソッド
	private static int digit( int a )
	{
		// 桁数を格納する変数
		int digit = 0;

		// 桁数を求める
		// aを10で割っていき、a=0になるまで処理を繰り返す
		for ( ; ; ) {
			// a=0でfor文を抜ける
			if ( 0 == a ) break;

			// 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_For_1.java

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

C:\talavax\javasample>javac Digit_For_1.java

実行

C:\talavax\javasample>java Digit_For_1

出力結果

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

Javaソースコードの解説

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

001
public class Digit_For_1 {

クラス名を、Digit_For_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になるまで処理を繰り返す
		for ( ; ; ) {

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

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

for文無限ループを作成しています。

011
012
			// a=0でfor文を抜ける
			if ( 0 == a ) break;

変数aの値が0になったときにbreak文for文を抜けるようにしています。

014
015
			// aを10で割る
			a = a / 10;

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

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

017
018
			// 桁数を増やす
			++ digit;

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

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

026
027
	// メイン
	public static void main( String[] args ) {

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

028
029
		// 桁数を求める値を格納する変数
		int a;

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

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

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

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

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

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

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

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

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

以上です。

前のコンテンツ

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

2023.04.23

関連コンテンツ

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

2022.09.10

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

2022.07.07

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

2022.10.25

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

2020.03.23

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

2022.10.17

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

2023.03.20

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

2017.07.14

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

2020.03.20

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

2020.03.23

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

2022.12.13

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

2020.03.23

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

2020.03.23

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

2020.03.23

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

2023.04.23

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

2020.03.23

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

2020.03.23

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

2020.03.23

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

2020.03.23

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

2020.03.23

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

2016.03.02

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

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

2020.03.23

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

2020.03.23

広告