前提・実現したいこと
コンソールから変数を代入した時に正しく分岐させたいです。
変数bld1,bl2にそれぞれ'A','B','O'のいずれかの値を入れてその組み合わせで血液型を求めるプログラムを書いています。
発生している問題・エラーメッセージ
同じ内容で初期化した時とコンソールから打った時とで結果が変わってしまいます。
String bld1 = "O";
String bld2 = "A";
といった様に初期化すると正常に'A'という結果が得られますが、Scannerを使ってコンソールから'O','A'とそれぞれ打ち込んだ場合毎回N/Aと出てしまいます。
package app; import java.util.*; class App { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String bld1 = sc.nextLine(); String bld2 = sc.nextLine(); sc.close(); //String bld1 = "O"; //String bld2 = "A"; System.out.println(bld1+bld2); if( (bld1=="A" && bld2==bld1) || (( bld1=="A" && bld2=="O" ) || (bld1=="O" && bld2=="A"))){ System.out.println("A"); }else if( (bld1=="B" && bld2==bld1) || (( bld1=="B" && bld2=="O" ) || (bld1=="O" && bld2=="B"))){ System.out.println("B"); }else if((bld1=="A"&& bld2=="B")||(bld1=="B" && bld2=="A")){ System.out.println("AB"); }else if(bld1=="O" && bld2==bld1){ System.out.println("O"); }else{ System.out.println("N/A"); } } }
試したこと
if文の前にbld1とbld2の中身を参照するprint文を挟み確認しましたが、初期化した場合とコンソールからとで違いは見受けられず、原因がわかりませんでした。
補足情報(FW/ツールのバージョンなど)
visual studio code
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。