[Java] for文の中にScannerで入力した値を足して出力したい。
解決したいこと
・例外の対処
・for文で足した値の出力
Java初学者です。
paizaラーニングで問題を解いていました。
とある問題を解いていた際に出た例外が解決できません。
また、for文の中で出力する値が表示できるが、forの外で出力すると表示されない問題を解決したいです。
内容としては、a_iの値がmよりも小さい時、n-1の数足して出力するというものです。
解決方法を教えて下さい。
発生している問題・エラー
Exception in thread "main" java.util.NoSuchElementException
at java.base/java.util.Scanner.throwFor(Scanner.java:937)
at java.base/java.util.Scanner.next(Scanner.java:1594)
at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
at Main.main(Main.java:14)
14行目は int a_i = sc.nextInt(); です。
該当するソースコード
import java.util.*;
public class Main {
public static void main(String[] args) {
// 自分の得意な言語で
// Let's チャレンジ!!
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int total = 0;
for (int i = 0; i < n; i++) {
int a_i = sc.nextInt();
if (a_i <= m) {
total += a_i;
}
}
System.out.println(total);
}
}
自分で試したこと
import java.util.*;
public class Main {
public static void main(String[] args) {
// 自分の得意な言語で
// Let's チャレンジ!!
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int total = 0;
for (int i = 0; i < n; i++) {
int a_i = sc.nextInt();
if (a_i <= m) {
total += a_i;
}
System.out.println(total);
}
}
}
--------------------------------------------------------------------------------
入力
n = 5
m = 10 のとき
5
6
25
4
期待する出力
15
出力結果
5
11
11
15
出力結果は間違いですが、繰り返しの最後に出た15という値を出したいという目的には近いと考えています。ただ、そのやり方がわかりません。
ご教授お願いいたします。