java - 创建一个猜谜游戏
问题描述
我不确定哪个是该程序的最佳循环周期:for、while 或 do-while。
首先,应用程序要求用户猜一个名字。如果用户的猜测是正确的,打印“Congratulation!” 并退出循环。如果答案不正确,应用程序会再次询问。用户可以通过键入“停止”来停止猜测。最后,打印用户猜了多少次。
重要 - 正确答案是艾玛。
如果猜测是 Olivia、Ava 和 Emma,控制台中的输出应该是:
Guess my name (type stop to exit)
Olivia
Guess my name (type stop to exit)
Ava
Guess my name (type stop to exit)
Emma
Congratulations!
You guessed 3 times.
小费!首先创建游戏,这样就只问问题一次。之后,尝试制作循环结构。您应该使用 for、while 还是 do-while?
我尝试执行以下操作,但现在我迷路了
import java.util.Scanner;
import java.util.ArrayList;
public class main {
public static void main(String[] args) {
Scanner user = new Scanner(System.in);
String guess1;
String guess2;
String guess3;
String guess4;
ArrayList<String> nimet = new ArrayList<>();
nimet.add("Olivia");
nimet.add("Ava");
nimet.add("Emma");
nimet.add("Charlotte");
do {
String stop = "stop";
System.out.println("Guess my name (type stop to exite)");
guess1 = user.nextLine();
if (guess1.equals(stop)) {
break;
}
System.out.println("Guess my name (type stop to exite)");
guess2 = user.nextLine();
if (guess2.equals(stop)) {
break;
}
System.out.println("Guess my name (type stop to exite)");
guess3 = user.nextLine();
if (guess3.equals(stop)) {
break;
}
System.out.println("Guess my name (type stop to exite)");
guess4 = user.nextLine();
if (guess4.equals(stop)) {
break;
}
} while (!guess1.equals(nimet.get(0)) && !guess1.equals(nimet.get(1)) && !guess1.equals(nimet.get(2)) && !guess1.equals(nimet.get(3)));
while (true) {
if (guess1.equals(nimet.get(0)) && guess1.equals(nimet.get(1)) && guess1.equals(nimet.get(2)) && guess1.equals(nimet.get(3))) {
System.out.println("Congratulations!\n" + "You guessed 3 times.");
}
}
}
}
解决方案
我认为 do-while 是最适合这个问题的概念,因为有一个动作(要求猜测)至少要完成一个并在循环中重复。
当然 for、while 和 do-while 结构是等价的,因为可以模拟其他结构。这只是一个风格决定。
推荐阅读
- python - 为什么此加密功能将我的数字输出为字母?
- docker - kubernetes 无法拉取镜像 docker 私有注册表
- flutter - 在通道 com.tekartik.sqflite 上找不到方法 getDatabasesPath 的实现
- sql - 如何转换 SQL 以显示开始和停止日期并显示每一天?
- html - jquery 基于多个下拉选择器显示 div
- android - 分页3调用adapter.refresh首先调用第2页
- php - Woocommerce:将库存状态添加到变体下拉选择器(必须不仅适用于 WC 生成的选择器)
- python - ImportError:即使使用 __init__.py 也尝试在没有已知父包的情况下进行相对导入
- javascript - 使用 Quasar js 在 Electron js 中未定义 fs 函数的 copyFile
- phpstorm - PhpStorm:此文件不属于该项目