PaizaにてJavaの練習問題を解いています。練習問題はハッカソンのロングヘアーゲットチャレンジ(下記のもの)です。
yes か no か5票の投票が行われます。数の多い方を出力して下さい。
例えば以下のような入力の場合
yes
yes
no
yes
no
以下のように出力してください
yes
[条件]
すべてのテストケースにおいて、以下の条件をみたします。
入力値は yes か no の文字列
###発生している問題・エラーメッセージ
Exception in thread "main" java.util.NoSuchElementException: No line found at java.util.Scanner.nextLine(Scanner.java:1540) at Main.main(Main.java:10)
###該当のソースコード
Java
1import java.util.ArrayList; 2import java.util.Scanner; 3public class Main { 4 public static void main(String[] args) { 5 //アンケート実施 6 int vote = 5; 7 ArrayList<String> votec = new ArrayList<>(); 8 for(int i = 0;i < vote;i++){ 9 Scanner sc = new Scanner(System.in); 10 String line = sc.nextLine(); 11 votec.add(line); 12 } 13 //アンケート集計 14 int yes = 0; 15 int no = 0; 16 for(int j = 0;j < vote;j++){ 17 if(votec.get(j).equals("yes")){ 18 yes++; 19 }else if(votec.get(j).equals("no")){ 20 no++; 21 } 22 } 23 //比較 24 if(yes > no){ 25 System.out.println("yes"); 26 }else if(yes < no){ 27 System.out.println("no"); 28 } 29 } 30}
###試したこと
Eclipseを使っているのでデバッグしてみたところ問題なく動いていますが
課題提出前の動作確認で上述のエラーが出ています。
###補足
質問自体初めてです。
またJava初心者のためとりあえず課題の求める出力ができれば良い状態ですが、
こうすればもっとソースを短くできる等の情報も頂けると非常に参考になります。
宜しくお願いします。
回答1件
あなたの回答
tips
プレビュー