java - 如果出现问题,我怎样才能返回到程序的开头?

标签 java if-statement return

简短的问题:万一出现问题,如何返回到代码的开头?

更详细一点:在我的代码末尾,我有一个名为“tulemus”的 int 变量。我希望它告诉我“Tulemus 错了,请再试一次!”如果(tulemus < 0 && tulemus > 110)为 true,并且还返回到用户输入数字的行( System.out.println("Sisesta 1. iseseisva töö tulemused(0-20 punkti): "); String str = input.readLine(); ),以允许重新执行此操作而无需重新启动程序。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Yl1osaB {

    public static void main(String[] args) throws IOException {

        BufferedReader input = new BufferedReader(new InputStreamReader(System.in));

        System.out.println("Ylesanne 1 RASMUS RIKKEN 25/11/2016");

        System.out.println("Sisesta oma nimi:");
        String nimi = input.readLine();
        System.out.println("Sinu nimi:" + nimi);

        System.out.println("Sisesta 1. iseseisva töö tulemused(0-20 punkti): ");
        String str = input.readLine();
        int number1 = Integer.parseInt(str);

        if (number1 > 20) {
            System.out.println("Sisestatud number on suurem kui max tulemus.");

        } else if (number1 < 0) {
            System.out.println("Sisestatud number on väiksem kui min tulemus.");

        }

        System.out.println("Sisesta 2. iseseisva töö tulemused(0-20 punkti): ");
        String str2 = input.readLine();
        int number2 = Integer.parseInt(str2);
        System.out.println("Iseseisev 1 ja 2 tulemused:" + (number2 + number1));

        if (number2 > 20) {
            System.out.println("Sisestatud number on suurem kui maxtulemus.");
            return;
        } else if (number2 < 0) {
            System.out.println("Sisestatud number on väiksem kui min tulemus.");
            return;
        }
        System.out.println("Sisesta 3. iseseisva töö tulemused(0-20 punkti): ");
        String str3 = input.readLine();
        int number3 = Integer.parseInt(str3);
        System.out.println("Iseseisev 1 ja 2 ja 3 tulemused:" + (number2 + number1 + number3));

        if (number3 > 20) {
            System.out.println("Sisestatud number on suurem kui max tulemus.");
            return;
        } else if (number3 < 0) {
            System.out.println("Sisestatud number on väiksem kui min tulemus.");
            return;
        }
        System.out.println("Sisesta koduste tööde punktid(max 10 punkti): ");
        String str4 = input.readLine();
        int number4 = Integer.parseInt(str4);
        System.out.println("Iseseisev 1 ja 2 ja 3 ja koduste ül. tulemused:" + (number2 + number1 + number3 + number4));

        if (number4 > 10) {
            System.out.println("Sisestatud number on suurem kui max tulemus.");
            return;
        } else if (number4 < 0) {
            System.out.println("Sisestatud number on väiksem kui min tulemus.");
            return;
        }

        System.out.println("Sisesta eksami punktid(max 40 punkti): ");
        String str5 = input.readLine();
        int number5 = Integer.parseInt(str5);
        System.out.println("Iseseisev 1 ja 2 ja 3 ja koduste ül. ja eksami tulemused:"
            + (number2 + number1 + number3 + number4 + number5));

        if (number5 > 40) {
            System.out.println("Sisestatud number on suurem kui eksami max tulemus.");
            return;
        } else if (number5 < 0) {
            System.out.println("Sisestatud number on väiksem kui eksami min tulemus.");
            return;
        }
        int tulemus = 0;
        tulemus = number1 + number2 + number3 + number4 + number5;

        if (tulemus > 0 && tulemus < 50) {
            System.out.println("Tulemus on " + tulemus + ", mis on alla 50 punkti, Aine on mittearvestatud.");
        } else if (tulemus <= 110) {
            System.out.print("Kokku on " + tulemus + " punkti. Aine on arvestatud!");
        }
        if (tulemus <= 110 && tulemus >= 91) {
            System.out.print(" Suurepärane!");
        }

        else if (tulemus <= 90 && tulemus >= 81) {
            System.out.print(" Väga hea!");
        }

        else if (tulemus <= 80 && tulemus >= 71) {
            System.out.print(" Hea!");
        }

        else if (tulemus <= 70 && tulemus >= 61) {
            System.out.print(" Rahuldav!");
        }

        else if (tulemus <= 60 && tulemus >= 51) {
            System.out.print(" Kasin!");
        } else if (tulemus <= 50 && tulemus >= 0) {
            System.out.print(" Puudulik!");
        }

    } // MAIN
} // CLASS

最佳答案

学习Java语言,你会发现while循环或者do-while循环就是你想要的。只需在循环之前定义 tulemus 即可在条件中检查它,或者在循环外部定义一些您在循环内相应设置的 boolean 值,或者使用 while(true) { } 进行无限循环然后使用 break; 退出循环如果您的失败条件不匹配。

除此之外(tulemus < 0 && tulemus > 110)永远是false .

所以类似

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Yl1osaB {

    public static void main(String[] args) throws IOException {

        BufferedReader input = new BufferedReader(new InputStreamReader(System.in));

        System.out.println("Ylesanne 1 RASMUS RIKKEN 25/11/2016");

        while (true) {

            // your code

            if(tulemus < 0 || tulemus > 110) {
                System.out.println("Tulemus is wrong, please try again!");
            }
            else {
                break;
            }
        }

    } // MAIN
}

关于java - 如果出现问题,我怎样才能返回到程序的开头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40803896/

相关文章:

java - Android 连接到本地主机

javascript - 我的 if 语句 "between"给出了错误的结果

c++ - If 语句逻辑 - 对象数组

powershell - PowerShell使exes命令呈惰性?

java - VM 服务器上的 Web 应用程序 ERR_CONNECTION_REFUSED

java - 带线程的格乘,效率更高吗?

python - 提取循环内的某些条件/值

Java 字符串返回 null

python - 如何分别返回完整的数组列表?

java - 如何将项目从 Eclipse 提交到主干中(通过 Subclipse)?