前提・実現したいこと
キーボードから半角数字1~5(5が入力された時点で終了)の入力を受け付け、
それをリストに追加していきます。
リストに追加された各数字の入力回数が奇数か偶数かによって、
異なるメッセージを表示させるというプログラムを作りたいです。
(※Switch文での場合分けを記述し忘れてしまったため追記しております)
ex:
2が2回入力されている(2がリスト中に2つある)場合は「△△△」
1が3回入力されている(1がリスト中に3つある)場合は「〇〇〇」
4が5回入力されている場合も「〇〇〇」、というふうに表示させたいです。
入力された数字をListに格納するところまでしかできませんでした。
Mapは使わず、Listでの処理を指定されています。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
Java
1import java.io.BufferedReader; 2import java.io.InputStreamReader; 3import java.util.ArrayList; 4 5public class MainDemo { 6 7 public static void main(String args[]) throws Exception { 8 9 // リストの準備 10 ArrayList<Integer> list = new ArrayList<Integer>(); 11 12 while (true) { 13 System.out.println("1~5の数字を半角で入力して下さい"); 14 15 // キーボードからの入力 16 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 17 int no = Integer.parseInt( br.readLine() ); 18 19 // 5が入力された場合 20 int five = 5; 21 if ( five == no ) { 22 System.out.println("終了します"); 23 break; 24 } 25 26 // 入力された文字をリストに格納 27 list.add(no); 28 29 // if(list.contains(no)) { 30 // System.out.println("配列内に値が存在しています。"); 31 // } 32 // 33 34 switch(no) { 35 case 1: 36 if ( 入力回数%2 != 0 ) { 37 System.out.println("○○○"); 38 }else { 39 System.out.println("△△△"); 40 } 41 break; 42 case 2: 43 if ( 入力回数%2 != 0 ) { 44 System.out.println("○○○"); 45 }else { 46 System.out.println("△△△"); 47 } 48 break; 49 case 3: 50 if ( 入力回数%2 != 0 ) { 51 System.out.println("○○○"); 52 }else { 53 System.out.println("△△△"); 54 } 55 break; 56 case 4: 57 if ( 入力回数%2 != 0 ) { 58 System.out.println("○○○"); 59 }else { 60 System.out.println("△△△"); 61 } 62 break; 63 } 64 } 65 } 66}
試したこと
for文でList内に重複している数字があるかを調べ、
その個数が偶数か奇数かによって場合分けをしようと思ったのですが、
重複の有無はわかっても、何回重複しているかを調べる方法を見つけられませんでした。
入力回数を変数としてSwitch文中のif文内で扱いたいです。
初歩的な問題でつまづいており恐縮ですが、よろしければアドバイスいただけると幸いです。