/ /「stop」、「Stop」、「exit」、または「Exit」が入力されるまで文字列を入力しようとしています-java、string

私は "停止"、 "停止"、 "終了"、または "終了"が入力されるまで文字列を入力しようとしています - java、string

コンピューターサイエンスのプログラムを作成していますクラス "stop"、 "Stop"、 "exit"、または "Exit"が入力されるまで、ユーザーが文字列を入力できる場所(好きなだけ)を取得しています。また、これらの単語の1つが入力されると、プログラムは変数 "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.");
}
}

回答:

回答№1は2

指定したもののみを使用できる場合:

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のチェックが少なくなります。