コンピューターサイエンスのプログラムを作成していますクラス "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のチェックが少なくなります。