JAVA怎么让程序从头开始执行?

比如说我需要用户输入特定的值,当用户输入其他值时,我要告诉用户输错了重新输,然后让我的程序再从头走一遍,有没有什么方法?

img

把代码放在一个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;
    }
}

img

for循环结合continue

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632