0

このプログラムでは、このユーザーは独自の単語検索を生成する機会があります。プログラムの最初に、次のオプションから選択できる指示のメニューが表示されます。 1. 単語検索を作成する 2. 単語検索を印刷する 3. 単語検索の解決策を表示する 4. プログラムを終了する

単語検索の作成を選択すると、ユーザーは選択した単語を 1 行ずつ入力するよう求められます。これらの単語は 1 次元配列に格納されます。ユーザーは最低 20 単語、最大 260 単語を入力する必要があります。20 単語のバッチごとに、ユーザーはさらに単語を追加するかどうかを尋ねられます。そうでない場合、プログラムはすぐに 1 次元配列を配列リストに変換し、単語検索を作成します。ユーザーがさらに単語を追加することを選択した場合、プログラムは単語の最大数に達するまで、さらに単語を入力するように求めます。オプション 2 と 3 は、いくつかのループを含み、いくつかのメソッドを使用して整理された出力をユーザーに表示します。

プログラムで単語配列に単語を入力できません。プログラムの実行時に、ユーザーが「1」を入力して単語検索を作成すると、プログラムはユーザーに行ごとに単語を入力するように指示しますが、ユーザーは何も入力できません。コンソール画面に「単語検索が作成されました」と表示され、そのすぐ下に「無効な入力です。再試行してください」と表示されます。プログラムを導入した直後に配列リストを作成しました。List<String> words = new ArrayList<>();

ここでどこが間違っているのかを理解しようとしましたが、これについて調べてみましたが、実際には何も解決しませんでした。

do {		
	WordArray wordArr = new WordArray();		
	showOptions();			
	choice = input.nextInt(); // Get choice input
	if (choice == 1) {				
		System.out.println("Enter words of your choice line-by-line. You can enter a maximum of 260 words (i.e., 10 words per letter)");					
		System.out.println("");				
		// This for loop will loop around with it`s body the user decides they have added enough words and wish to proceed				
		for (int i = 0; i < words.size(); i++) {					
			words.add(input.nextLine());		            
			if ((i + 1) % 20 == 0 && i != 0) { 						
				// For every batch of 20 words entered, the program will ask the user this...		            	
		        System.out.print("Do you want to keep adding words? Enter Y/N: ");		            	
		        String answer = input.next().toUpperCase();		            	
		        if (answer.equals("Y")) {
		            words.add(input.nextLine());	    		
		        } if (answer.equals("N")) {		       		
		    		break;		            		
		        }//end of inner if		            	
		    }//end of outer if		            
		 }//end of for loop				
		createWordSearch(words);				

4

1 に答える 1