2017-05-11 13 views
1

私の目標は、このような出力何かにある:ループ構造と基本的な文字列を使用して789このDigits Displayプログラムが動作しないのはなぜですか?

は、番号を入力します。

ここに私のプログラムatmがあります。

public static void main(String[] args) { 

    int mod; 
    int power = 10; 
    int display; 
    String number; 
    Scanner input = new Scanner(System.in); 

    System.out.println ("Enter a positive integer: "); 
     number = input.nextLine(); 

    int numberLength; 

    numberLength = number.length(); 
    numberLength -= 1; 

    do { 

     mod = Math.pow (power, numberLength); 
     power -= 1; 
     display = number % mod; 
     System.out.println (display); 

    } while (mod>=1);  
} 

}

すべてのヘルプは理解されるであろう!ありがとう!

+0

なぜ 'String、charAt'を使わないのですか? – Jens

+0

私たちはまだそれを学んでいないので。 –

+1

'number%mod' < - numberは文字列である別名テキストです。テキストに対してモジュロ演算を行うことはできません。そのためには数値が必要です。そのことを正確に示すエラーが発生するはずです。 –

答えて

2

任意のループする必要はありませんか、あなたが例えばSystem.out.print(number.replace("", "\n"));を使用することができますワンステップでreplace("", "\n");を使用することができます任意のもの:

public static void main(String[] args) { 
    Scanner input = new Scanner(System.in); 
    System.out.print("Enter a positive integer: ");//789 
    String number = input.nextLine(); 
    System.out.print(number.replace("", "\n")); 
} 

出力

Enter a positive integer: 789 

7 
8 
9 
+1

ニースのソリューション! – CraigR8806

+1

ありがとう@ CraigR8806 :) –

0

使用String.charAt()

 String number; 
     Scanner input = new Scanner(System.in); 

     System.out.println ("Enter a positive integer: "); 
      number = input.nextLine(); 

      for (int i=0; i<number.length();i++) { 
       System.out.println(number.charAt(i)); 
      } 
関連する問題