java - 找到单词后如何从循环中中断
问题描述
我正在尝试创建一个刽子手,但我遇到了 2 个问题。
1)第一个问题是当用户找到单词时,循环并没有停止。
2)我有一个变量attempts
可以知道尝试的次数。即使用户找到了字母,尝试的次数也会减少。
要找到的词是no
这是一个演示:
1) 我输入字母n
You have 5 attempts.
--
Enter your letter : n
2) 我输入字母o
The letter is good.
You have 4 attempts.
n-
Enter your letter : o
3) 通常循环应该停止。
The letter is good.
You have 3 attempts.
no
Enter your letter :
如果您有任何想法,请提前感谢您。
Scanner input = new Scanner(System.in);
char letter = 0;
String[] words = {/*"yes",*/ "no"};
String word_random = words[(int) (Math.random() * words.length)];
boolean[] word_found = new boolean[word_random.length()];
int attempts = 5;
while(attempts > 0){
System.out.println("You have " + attempts + " attempts.");
for(int i=0; i<word_random.length(); i++) {
if ( word_found[i] ) {
System.out.print(word_random.charAt(i));
}
else {
System.out.print('-');
}
}
System.out.println("");
System.out.print("Enter your letter : ");
letter = input.next().charAt(0);
for(int i=0; i<word_random.length();i++){
if(word_random.charAt(i) == letter){
System.out.println("The letter is good. ");
word_found[i] = true;
}
}
attempts--;
}
}
}
解决方案
您只是缺少一个检查循环或方法。检查下面的解决方案。
Scanner input = new Scanner(System.in);
char letter = 0;
String[] words = {/*"yes",*/ "no"};
String word_random = words[(int) (Math.random() * words.length)];
boolean[] word_found = new boolean[word_random.length()];
int attempts = 5;
while(attempts > 0){
System.out.println("You have " + attempts + " attempts.");
for(int i=0; i<word_random.length(); i++) {
if ( word_found[i] ) {
System.out.print(word_random.charAt(i));
}
else {
System.out.print('-');
}
}
System.out.println("");
System.out.print("Enter your letter : ");
letter = input.next().charAt(0);
for(int i=0; i<word_random.length();i++){
if(word_random.charAt(i) == letter){
System.out.println("The letter is good. ");
word_found[i] = true;
}
}
boolean done = true;
for(boolean b : word_found)
done = done && b;
if(done) break;
else attempts--;
}
推荐阅读
- ably-realtime - ConnectionManager.onChannelMessage() 接收到的消息具有不同的connectionSerial,但与之前的消息ID 相同;丢弃
- xamarin.forms - CrossCurrentActivity.Current.Activity 为 NULL,尽管初始化和设置了活动
- python - 从 Matplotlib 集合中检索标记
- mysql - mysql脚本将查询输出作为输入添加到另一个查询
- javascript - 从网站在主机服务器上创建文本文件
- python - 在 r 中安装 tensorflow 并在 python 中运行
- python - 从另一个数据帧中过滤日期的熊猫数据帧
- javascript - 5秒后关闭模态框
- django - 仅当模型字段为空时才向表单添加字段
- c# - 销毁一个对象并用原始对象位置的预制件替换?