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循环,没有任何积极的结果。谢谢