比如说我需要用户输入特定的值,当用户输入其他值时,我要告诉用户输错了重新输,然后让我的程序再从头走一遍,有没有什么方法?
把代码放在一个while循环中,在读取数据的地方用if语句判断,如果读取错误,执行continue,结束本次循环重新输入,如果正确,则继续执行后面的。参考如下:
Scanner sc = new Scanner(System.in);
int flag = 1;
while (flag == 1) {
//...
//读取数据,假设要求读取的是1-5的数
int nmb = sc.nextInt();
if ( nmb <1 || nmb > 5)
continue; //读取的数据不符合要求,结束本次循环,重新开始
//继续执行后面的操作
}
可以用状态转换来做,每个函数执行之后更新一下当前状态,大循环根据状态决定下一步要执行什么函数
类似
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
/* 只接收AB开头的串 */
int state = 0;
while (state != 3) {
switch (state) {
case 0:
state = funA();
break;
case 1:
state = funError();
break;
case 2:
state = funB();
break;
default:
break;
}
}
System.out.println("Accepted!");
}
public static int funA() {
System.out.println("please input A");
Scanner input = new Scanner(System.in);
String temp = input.next();
if (temp.equals("A")) {
return 2;
}
return 1;
}
public static int funB() {
System.out.println("please input B");
Scanner input = new Scanner(System.in);
String temp = input.next();
if (temp.equals("B")) {
return 3;
}
return 1;
}
public static int funError() {
System.out.println("ERROR, please type again!");
return 0;
}
}
for循环结合continue
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!