1

これまでのところ、このプログラムを実行することができましたが、この部分については理解できました。ユーザーが有効な 2 進数を表す単語を入力するまで、プログラムはユーザーに新しい単語を入力するように促し続ける必要があります。ループを使用することになっていることはわかっていますが、どこに置くべきかわかりません。

package programming_assignment_1;

import java.util.Scanner;

public class Programming_Assignment_1 {

    public static void main(String[] args) {
        // TODO code application logic here
        Scanner sc = new Scanner(System.in);
        System.out.print("Please imput a binary number : ");
        String binary;
        binary = sc.next();
        boolean isBinary = true;

        char[] values = binary.toCharArray();
        for(int i=0; i<values.length; i++)
        {
                if( (values[i] != '0') && (values[i] != '1') )
                {
                isBinary = false;
                break;
                }
        }
        if(!isBinary)
        {
        System.out.println("this is not a binary number");
        }
        else
        {
            for(int i=0; i<1; i++)
            {
                 String consecutive1s = "111";
               if (binary.indexOf(consecutive1s) != -1)
            {
                System.out.println("accepted");
            }
            else
            {
              System.out.println("rejected");  
            }
            }
        }

    }
}
4

2 に答える 2

3

コードをdo...while(..)ループに入れます。何かのようなもの :

do {
  //read number
  //process number
  // if num valid or operation is finished break the loop using break
} while (condtion);

私はあなたのコードを使用して解決策を提供したでしょうが、あなたは新しく、Java で基本的なことを学ぶ必要があるようです。だからヒントだけあげた。

于 2012-09-20T06:36:10.900 に答える
0
...
public static void main(String[] args) {
    // TODO code application logic here
    boolean accepted = false;
    while(!accepted) {
       Scanner sc = new Scanner(System.in);
       ...

       if(!isBinary) {
           System.out.println("this is not a binary number");
       } else {
           accepted = true;
           ...

       }
       ...

    } // while
} // main

さらに、あなたの「for」ループについてはわかりません.1回だけ実行されるため、プログラムに何も追加しません...

于 2012-09-20T06:39:45.740 に答える