如何重置if命令?或者跳回if命令执行前的那一点?

时间:2014-10-29 19:46:28

标签: java if-statement while-loop reset do-loops

所以昨天我问了一些关于GUI的问题。我完全抛弃了它,因为我觉得实际处理它有点复杂。 现在我正在重新设计控制台中的东西。

我再次陷入困境。这次我的问题:如何在执行if命令之前跳回到某一点? 直接的例子:

import java.util.Scanner;
import java.io.*;

public class HBA {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
    System.out.println("Herzlichen Glückwunsch Anna! Und viel Spaß mit deinem Geschenk!") ;
    System.out.println("Neben diesem Programm befindet sich eine Passwort gesicherte Datei, die einen weiteren Teil deines Geschenks enthällt."
                    + "Um an das Passwort zu gelangen wirst du jedoch ein paar ganz besonders schwierige Fragen beantworten müssen!"
                    + "Wenn du bereit für das Quiz bist, gib in die Eingabe: 'ok' ein.");
    String OK, Q1, Q2, Q3, Q4, Q5, Q6, Q7;
    BufferedReader repo = null;

    OK = scan.next();
    if (OK == "ok") {
            System.out.println("Alles gut, fangen wir mit etwas leichtem an!");
            }
    else {
            System.out.println("Wie... bei so einer einfachen Sache versagst du schon? Versuchs nochmal!");
        }

    System.out.println("Frage 1: Wer ist Supergeil? \n A: Erik \n B: Anna \n C: The J \n D: Friedrich Liechtenstein");
    mark(0);
    Q1 = scan.next();
    if (Q1 == "D") {
            System.out.println("Richtig! Der erste Buchstabe lautet: S");
            }
    else {
            System.out.println("Leider falsch. Versuch es nochmal.");
            reset();
        }
    }
}

脚本按预期工作,此外:如果在最后一部分输入错误:

    System.out.println("Frage 1: Wer ist Supergeil? \n A: Erik \n B: Anna \n C: The J \n D: Friedrich Liechtenstein");
    mark(0);
    Q1 = scan.next();
    if (Q1 == "D") {
            System.out.println("Richtig! Der erste Buchstabe lautet: S");
            }
    else {
            System.out.println("Leider falsch. Versuch es nochmal.");
            reset();
        }
    }
}

它只是结束了脚本。相反,它应该跳回到if命令的开头。 意思是:System.out.printLn中问题的答案(这是一个问题)是D而你代表A,它应该重置整个事情,你可以再次尝试并回答不同的东西。我怎样才能做到这一点?我读到BufferedReader有一个mark()和reset()函数,但我不知道它们是否按照我期望的方式工作或者我将如何集成它们。

我还想过使用while或do命令。但我还没有找到办法。

有人可以开导我吗?

谢谢!

0 个答案:

没有答案