2017-10-05 3 views
0
私はこのコードで遊んでいた

...whileループで条件内の丸括弧の中に何かを印刷できますか?

import java.util.Scanner; 

class plus 
{ 
    public static void main(String[] args) 
    { 
     Scanner scan = new Scanner(System.in); 

     do{ 
      System.out.print("Youe Value: "); 
      long tobe = scan.nextLong(); 

      int total = 0; 

      String parsed = String.valueOf(tobe); 

      for(int i = 0; i < parsed.length(); i++) { 
       total += Character.getNumericValue(parsed.charAt(i)); 
      } 

      System.out.println("Your Result: "+ total); 
     } 
     while(scan.hasNextLong()); 
    } 
} 

出力は、その後数の入力を要求し、それを処理し、結果として印刷する必要があります。別の入力と再び

、それはinteger(long)

だがwhileループscan.hasnextLongの条件が入力自体とプロセスをとる場合に、出力がthis-

あなたの価値のようなものです:あなたの結果:N

が、予想される出力はthis-

あなたバリューのようなものですE:メートル

あなたの結果:n個の第1の時間など

toは初めて入力したようです。そのループの状態を確認するために何を使用しているかどうかは、integerです。 あなたの値:のこの値をに使用してください。

だから私は、私が望んでいたようなので、それは印刷し、プロンプト

while(scan.hasNextLong()) 

丸括弧内whileループcondionの内側の条件で、このラインで

どこかを印刷したかったです。

答えて

0

値を初期化する前に値を印刷する必要があります。 printlnの代わりにprintを使用すると、次の出力は同じ行に表示されます。

public static void main(String[] args) 
     { 

      Scanner scan = new Scanner(System.in); 

      do{ 

       long tobe = scan.nextLong(); 
       System.out.println("Your Value: " + tobe); 

       int total = 0; 

       String parsed = String.valueOf(tobe); 

       for(int i = 0; i < parsed.length(); i++) { 
        total += Character.getNumericValue(parsed.charAt(i)); 
       } 

       System.out.println("Your Result: "+ total); 
      } 
      while(scan.hasNextLong()); 
     } 
0

スキャナでStringの入力が得られるようにコードを変更しました。
whileの条件では、数値のみが含まれているかどうかを確認します。それは入力の.matches()を呼び出すことによってそれを行い、入力文字列を正規表現\d+と一致させようとします。この式は、一連の1つ以上の数字に一致します。 \dは数字で、+は限定記号です。 RegExrのようなサイトの正規表現で学び、遊ぶことができます。文字列だけの数字が含まれている場合

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

    System.out.print("Your Value: "); 

    while ((input = scan.nextLine()).matches("\\d+")){ 

     int total = 0; 

     for(int i = 0; i < input.length(); i++) { 
      total += Character.getNumericValue(input.charAt(i)); 
     } 

     System.out.println("Your Result: "+ total); 
     System.out.println("\nYour Value: "); 
    } 

    System.out.println("\nTHE END."); 
    scan.close(); 
+0

ので.matches( "\\ D +")のチェックとwhile(scan.hasNextLong());を置き換えますか?もしそうなら私は理解した。 しかし、私はまた、条件のinaideをプリントアウトしたかった。また、マッチメソッドがどのように機能するかについても説明します。明らかに。なぜ\\ d +などであるのでしょうか? – Rabin

+0

@Rabin '.matches()'メソッドの説明を追加しました。残念ながら、なぜあなたは条件の中に何かを印刷したいのか分かりません。私はまだこれが役立つことを願っています – mumpitz

0

while(scan.hasNextLine());

関連する問題