如何不断提示用户输入新单词

时间:2012-09-20 06:32:10

标签: java arrays loops

到目前为止,我已经运行了这个程序,但我在这部分得到了库存:程序应该一直提示用户输入一个新单词,直到用户输入表示有效二进制数的单词为止。我知道我想要使用一个循环,但我不知道放在哪里。

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");  
            }
            }
        }

    }
}

2 个答案:

答案 0 :(得分:3)

将代码放在do...while(..)循环下。类似的东西:

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

我会使用您的代码提供解决方案,但似乎您是新手,需要学习Java中的基本知识。所以我给了你一些提示。

答案 1 :(得分: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”循环 - 它不会给你的程序添加任何东西,因为它只执行一次......