所以昨天我问了一些关于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命令。但我还没有找到办法。
有人可以开导我吗?
谢谢!