2016-04-02 8 views
-1

バイナリを10進数に変換するプログラムを作成するように割り当てられました。私はその部分を問題なく実行しましたが、ユーザがバイナリに入れるかどうかを確認する必要があります。それ以外の場合は、「やり直してください」と言わなければなりません。無限ループを使用することなく存在します。私は無限ループなしでそれをどうやって行うのか分かりません。私はさまざまな方法で試してみましたが、私のコードに正しく入力することはできません。バイナリコードの検証と無限ループのないプログラムの繰り返し

import java.util.Scanner; 
 
class Quiz4 { 
 
    public static void main(String args[]){ 
 
     Scanner input = new Scanner(System.in); 
 
     System.out.print("Enter a binary number: "); 
 
     String binaryString =input.nextLine(); 
 
     System.out.println("Output: "+Integer.parseInt(binaryString,2)); 
 
    } 
 
} 
 
► Run code snippet

+0

do/whileループでコードをラップしようとしましたが、一定のエラーが発生しないようにする方法がわかりません –

+0

do whileループを使用して、無限のメッセージを再試行してください。 Epilsonから与えられたアプローチを理解しようとしますが、自分自身の方法を設計することを強くお勧めします。forループを使用して、すべてが0であるかどうかを確認してください。 –

答えて

-1

あなたのような何かを使用することができます。

`

import java.util.Scanner; 
class Quiz4 { 
    public static void main(String args[]){ 
     Scanner input = new Scanner(System.in); 
     System.out.print("Enter a binary number: "); 
     String binaryString =input.nextLine(); 
     if (binaryString.matches("[10]+")) { 
      System.out.println("Output: "+Integer.parseInt(binaryString,2)); 
     } else { 
      //invalid. 
     } 
    } 
}` 

を空に、それはまた、falseを返します。

+0

私はそれを私のコードにどうやって適用しますか? –

+0

'String binaryString = input.nextLine();の直後にif-else文で使用できます。 trueを返した場合は有効です。 –

+0

私は非常に混乱しているので、コードに編集することができます –

関連する問題