javaの問題集で
「正の整数値を読み込んで、その桁数を出力するプログラムを作成せよ」
(たとえば9999と入力したら
『4桁』
という表示がされるプログラムを作成せよ)
という問題の模範解答を見たのですが、while文の中で桁数を求めている箇所で
なぜそれで正解なのかわからなかったので、どなたかご解説いただけないでしょうか?
模範解答のコードは以下です。
java
1import java.util.Scanner; 2 3public class Main { 4 public static void main(String[] args) { 5 Scanner stdIn = new Scanner(System.in); 6 7 System.out.println("正の整数値の桁数を求めます。"); 8 int n = stdIn.nextInt(); 9 System.out.println("正の整数値:"+n); 10 11 int keta = 0; 12 while(n > 0){ 13 keta ++; 14 n = n / 10; 15 } 16 System.out.println("その数は"+keta+"桁です"); 17 18 } 19} 20
入力値に9999と入力した場合、while文に入り
n = n / 10 ;
の箇所で最初に
n = 999.9
となりその後、n = 99.99
n = 9.999
n = 0.9999
n = 0.09999 となっていくと思うのですが、いつになってもnが0未満にならず、**while(n > 0)**の式から抜けない気がするのですが・・・。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。