Tips

【Java】プログラム作成練習問題32

【Java】プログラム作成練習問題32

プログラム作成練習問題32回となります。

※この出題形式に関しては答えは1つではありません。
解答例はできるだけ複数載せるつもりですが、問題文の要件を満たしていれば正解として下さい。

問題

int型の変数numの値に3が含まれているか判定するプログラムを作成せよ
ただし負の数は考慮しないものとする

解答例1
public class Excercise_032 {
	public static void main(String[] args) {
		int num = 321;
		int temp = num;

		String result = "3は含まれていません";

		while(temp > 0) {
			if(temp % 10 == 3) {
				result = "3が含まれています";
				break;
			}
			temp /= 10;
		}

		System.out.println(result);
	}
}

解答例2
public class Excercise_032 {
	public static void main(String[] args) {
		int num = 321;
		String strNum = String.valueOf(num);

		String result = "3は含まれていません";

		for(int i = 0; i < strNum.length(); i++) {
			if(strNum.charAt(i) == '3') {
				result = "3が含まれています";
				break;
			}
		}

		System.out.println(result);
	}
}

解答例3
public class Excercise_032 {
	public static void main(String[] args) {
		int num = 321;
		String strNum = String.valueOf(num);

		if(strNum.contains("3")) {
			System.out.println("3が含まれています");
		} else {
			System.out.println("3は含まれていません");
		}
	}
}

間違い例

public class Excercise_032 {
	public static void main(String[] args) {
		int num = 321;
		String strNum = String.valueOf(num);

		String result = "3は含まれていません";

		for(int i = 0; i < strNum.length(); i++) {
			if(strNum.charAt(i) == "3") {
				result = "3が含まれています";
				break;
			}
		}

		System.out.println(result);
	}
}

解答例2でありがちなコンパイルエラーです。
誤 : strNum.charAt(i) == “3”
正 : strNum.charAt(i) == ‘3’
9行目でi番目の文字と3が等しいか判定していますが、charAtメソッドの戻り値はchar型のためString型と==演算子で比較することはできません。


新連載はじまりました!新Java基礎 連載リンク

はじめてのJAVA 連載

Recent News

Recent Tips

Tag Search