我正在为计算机科学课创建一个程序我正在用户可以输入字符串(尽可能多的人),直到单词" stop"," Stop" ,"退出",或"退出"进入。此外,当输入这些单词时,程序应输入存储在变量" wordcount"中的int。这样它就可以打印到控制台上了 向用户显示他们输入的单词数,不包括用于停止程序的单词。我是新手代码,不知道如何做到这一点。这是我失败的尝试:
package repeatWords;
import java.util.Scanner;
public class RepeatWords {
public static void main(String[] args)
{
System.out.println("Enter words, type (stop or exit) to stop:");
System.out.println();
Scanner keyboard = new Scanner(System.in);
String word = keyboard.nextLine();
int wordcount = 0;
while(!(word.equals("exit")))
{
wordcount++;
}
System.out.println("you enetered " + wordcount + "words.");
}
}
答案 0 :(得分:3)
如果您只被允许使用您提供的内容:
System.out.println("Enter words, type (stop or exit) to stop:");
System.out.println();
Scanner keyboard = new Scanner(System.in);
String word = keyboard.nextLine();
int wordcount = 0;
while(!(word.equalsIgnoreCase("exit") || !word.equalsIgnoreCase("stop"))) {
word = keyboard.nextLine();
wordcount++;
}
System.out.println("you enetered " + wordcount + " word(s).");
问题是您陷入了无限循环,因为您从未检查过扫描程序中while
更新输入的word
条件。这样,每次用户输入一个新单词时它都会递增,然后检查用户是否输入了一个允许循环退出的单词。
equalsIgnoreCase()
将获取您的String值,并忽略其值的区分大小写。这将减少您对4到2的检查。