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

Java 如何不断提示用户输入新词,java,arrays,loops,Java,Arrays,Loops,到目前为止,我已经运行了这个程序,但我在这一部分中得到了支持:程序应该一直提示用户输入一个新单词,直到用户输入一个表示有效二进制数的单词。我知道我想用一个循环,但我不知道把它放在哪里 package programming_assignment_1; import java.util.Scanner; public class Programming_Assignment_1 { public static void main(String[] args) { //

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

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

    }
}
package programming\u assignment\u 1;
导入java.util.Scanner;
公共类编程任务1{
公共静态void main(字符串[]args){
//此处的TODO代码应用程序逻辑
扫描仪sc=新的扫描仪(System.in);
系统输出打印(“请输入一个二进制数:”);
字符串二进制;
二进制=sc.next();
布尔值isBinary=true;
char[]value=binary.toCharArray();

对于(int i=0;i将代码置于
do…while(…)
循环下。类似于:

do {
  //read number
  //process number
  // if num valid or operation is finished break the loop using break
} while (condtion);
我本想用你们的代码提供解决方案,但你们似乎是新手,需要学习Java的基本知识

...
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”循环-它不会向您的程序中添加任何内容,因为它只执行一次…

如果您一次从用户处读取一个数字,而用户输入多个数字,则
扫描仪
外部,而循环将产生问题。我建议每次创建新的扫描仪,即在while循环中创建它。@NandkumarTekale Damn;)这是我的第一种方法,但后来我认为这将是一个很好的优化,只创建一次扫描仪并重用它…谢谢你的回答。我以前尝试过这个解决方案,但只有当输入不是二进制时,程序才会不断提示用户。@user1663414:在这种情况下,只需移动“accepted=true”到if(!isBinary)的else{}分支的开头。我已经调整了我的代码段。我知道,但是我在过去两天中尝试了do-while循环,没有任何积极的结果。谢谢