如果出现问题,我怎么能回到我的程序的开头?

时间:2016-11-25 11:23:09

标签: java if-statement return

缩短的问题:如果出现问题,如何返回代码的开头?

更详细一点:在我的代码末尾,我有一个名为“tulemus”的int变量。我想告诉我“Tulemus错了,请再试一次!”如果(tulemus < 0 && tulemus > 110)为真,并且还返回到用户输入数字(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

3 个答案:

答案 0 :(得分:2)

学习Java语言,然后你会发现while循环或do-while循环将是你所追求的。只需在循环之前定义tulemus以便能够在条件中检查它,或者在循环内部相应地设置循环之外定义一些布尔值,或者使用while(true) { }进行无限循环,然后使用{{退出循环1}}如果您的失败条件不匹配。

此外break;始终为(tulemus < 0 && tulemus > 110)

类似

false

答案 1 :(得分:1)

将所有内容放在while循环中,并在循环外定义tumelusboolean

这样的东西
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");

        boolean startAgain = true; 
        while (startAgain) {

            // your code

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

    } // MAIN
}

或者更好的是,将startAgain = false放入if已有的tumelus作为条件的一部分

答案 2 :(得分:0)

package org.cgi;

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

public class Test {

    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:");
        int tulemus = 0;
        do{

        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;
        }
         tulemus = number1 + number2 + number3 + number4 + number5;

        }while(tulemus <0 && tulemus > 110);

        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

}