Java 清除控制台屏幕以接受来自用户的新值
您好,请在我正在开发的一个switch case程序中,我使用do..while循环来处理当用户输入一个不符合条件的值但被我应该放在“while”括号中的内容卡住时的情况,因为错误显示在“while”行上Java 清除控制台屏幕以接受来自用户的新值,java,switch-statement,Java,Switch Statement,您好,请在我正在开发的一个switch case程序中,我使用do..while循环来处理当用户输入一个不符合条件的值但被我应该放在“while”括号中的内容卡住时的情况,因为错误显示在“while”行上 包分配; 导入java.util.*; 公共课堂作业{ 公共静态void main(字符串[]args){ 扫描仪输入=新扫描仪(System.in); System.out.print(“1)周一\n2)周二\n3)周三\n4)周四\n5)周五\n6)周六\n7)周日”); System.o
包分配;
导入java.util.*;
公共课堂作业{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
System.out.print(“1)周一\n2)周二\n3)周三\n4)周四\n5)周五\n6)周六\n7)周日”);
System.out.println(“”);
int day=input.nextInt();
System.out.println(“”);
做{
开关(日){
案例1:
System.out.println(“星期一”);
打破
案例2:
System.out.println(“星期二”);
打破
案例3:
System.out.println(“星期三”);
打破
案例4:
System.out.println(“星期四”);
打破
案例5:
System.out.println(“星期五”);
打破
案例6:
System.out.println(“星期六”);
打破
案例7:
System.out.println(“星期日”);
打破
违约:
System.out.println(“哦,这不是一个可接受的数字,请再试一次”);
打破
}
用于(int clear=0;clear<1000;clear++){
System.out.println(“\b”);
}
}而(!(day.equals(“1”)day.equals(“2”)day.equals(“3”)day.equals(“4”)day.equals(“5”)day.equals(“6”)day.equals(“7”);
}
}
不要将日期作为字符串检查,只需将其作为一个整数检查即可。创建新字符串以检查整数时无需分配额外内存
当您开始while循环时,似乎无法检查新输入。您如何在循环中每次都获得新的输入
没有可靠的方法可以跨平台清除控制台,因为这取决于您使用的IDE或UNIX、PowerShell或CMD终端。看看这个答案
由于这看起来像是一个家庭作业,我建议您考虑如何简化while循环条件
提示:有没有办法检查一系列数字?如果您必须检查1000个不同的数字,您会检查每个数字或条件吗?
day
是int
而不是字符串。将其更改为字符串(并将其作为字符串读入),或者将其视为基本int
,其中您可以使用简单的day==1
检查值,例如不等于。并在do while中请求input.nextInt()
。否则你将无法跳出循环。@Paul我该怎么做?感谢you@OH感谢上帝you@Nana_Yaw将您的int day=input.nextInt()
移动到do while的括号内。或者在其上方添加一个System.out.println(“请输入一个介于1和7之间的数字”)
,很明显您是在要求它,您能帮我修复代码吗?非常感谢。
package assignment;
import java.util.*;
public class Assignment {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("1)Monday\n2)Tuesday\n3)Wednesday\n4)Thursday\n5)Friday\n6)Saturday\n7)Sunday");
System.out.println("");
int day = input.nextInt();
System.out.println(" ");
do {
switch (day) {
case 1:
System.out.println("Monday");
break;
case 2:
System.out.println("Tuesday");
break;
case 3:
System.out.println("Wednesday");
break;
case 4:
System.out.println("Thursday");
break;
case 5:
System.out.println("Friday");
break;
case 6:
System.out.println("Saturday");
break;
case 7:
System.out.println("Sunday");
break;
default:
System.out.println("Oh oh, that's not an accepted number, kindly try again");
break;
}
for (int clear = 0; clear < 1000; clear++) {
System.out.println("\b");
}
} while (!(day.equals("1") || day.equals("2") || day.equals("3") || day.equals("4") || day.equals("5") || day.equals("6") || day.equals("7")));
}
}