前提
現在Javaの勉強をしており、Paizaのスキルチェックで繰り返しアウトプットをしている段階です。
主にCランクの問題に挑戦していますが、度々同様のランタイムエラーが発生します。
標準入力での数値の与え方が例えば
4 30
30
10
40
の時に、2行目の30が読み込めないようでエラーが発生しています。
同じコードをeclipseで試したとき、数値を
4
30
30
10
40
のように全て改行した時は、問題なく動作しました。
数字の間に半角空白や改行があっても問題なく読み込める方法をご教示いただきたく存じます。
よろしくお願いいたします。
エラーメッセージ
Exception in thread "main" java.util.NoSuchElementException at java.base/java.util.Scanner.throwFor(Scanner.java:941) at java.base/java.util.Scanner.next(Scanner.java:1598) at java.base/java.util.Scanner.nextInt(Scanner.java:2263) at java.base/java.util.Scanner.nextInt(Scanner.java:2217) at Main.main(Main.java:9)
該当のソースコード
Java
1import java.util.*; 2public class Main { 3 public static void main(String[] args) { 4 Scanner sc = new Scanner(System.in); 5 int N=sc.nextInt(); 6 int M=sc.nextInt(); 7 int jam=0; 8 for(int i=0;i<N;i++){ 9 int A = sc.nextInt(); 10 if(A<=M){ 11 jam+=A; 12 }else{ 13 continue; 14 } 15 } 16 System.out.print(jam); 17 } 18}
試したこと
調べていく中で改行が影響するといったことが書いてあるサイトを見つけたので
9行目の上の行に
sc.nextLine();
を加えて改行を文字列として読み込めるか試みましたが、
同様のエラーが再び出ました。
また、初めに読み込むNとMは問題なく読み込まれていることを確認しています。
回答1件
あなたの回答
tips
プレビュー