Java 清除控制台屏幕以接受来自用户的新值

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

您好,请在我正在开发的一个switch case程序中,我使用do..while循环来处理当用户输入一个不符合条件的值但被我应该放在“while”括号中的内容卡住时的情况,因为错误显示在“while”行上

包分配;
导入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")));
    }
}