Javaの条件分岐について
Q&A
Closed
解決したいこと
エンジニア騎士とクエリの魔女というサイトにおいてJavaの問題で分からない部分があるので、ヒントをいただきたいです。
strの値("S","M","LL")をif文で分岐させて、3回の繰り返しの中でそれぞれ100,200,300×2=600をtotalに加算して最後に900を出力させたいのですが、全ての分岐がelse("LL")の300×2=600に行ってしまいます。。。
自分で試したこと
String str = sc.next();で値が問題なく入力されているのは確認できました。
if文の記述が間違っているのか、条件のString型の文字が認識されていないか、というところで修正しましたが解決に至りません。
該当するソースコード
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int S = sc.nextInt();
int M = sc.nextInt();
int L = sc.nextInt();
int total = 0;
for(int i = 1; i <= N; i++) {
String str = sc.next();
if (str == "S") {
total += S;
} else if (str == "M") {
total += M;
} else if (str == "L") {
total += L;
} else if (str == "SS") {
total += (S / 2);
} else {
total += (L * 2);
}
System.out.println(str); //何が代入されているか見るためのコード
System.out.println(total); //何が代入されているか見るためのコード
}
System.out.println(total);
}
}
0