前提・実現したいこと
変数を初期化するために0を代入すると、そのままになってしまいます。
paymentを、Switchのなかでそれぞれ計算した値を、messageで出力したいです。
けれど、最初に初期化して0を入れると、その後の処理を行わないで、そのまま0が出力されてしまいます。
Switchのなかの計算を行ってからmessageに出力するには、どうすれば良いのでしょうか?
該当のソースコード
java
1import java.io.File; 2import java.io.FileNotFoundException; 3import java.util.Scanner; 4 5public class Kadai02 6{ 7 public static void main(String[] args) 8 { 9 //File f = new File("C:/Users/Kana-cosmos/Desktop/emp02.txt"); 10 File f = new File("C:/Users/Kana-cosmos/Desktop/emp02.txt"); 11 //Scannerを使って文字列の読み込みを行う 12 13 try(Scanner sc = new Scanner(f)) 14 { 15 //useDelimiterメソッドで区切り文字の指定 16 sc.useDelimiter(","); 17 18 //hasNextLineで次の行が存在するか確認 19 while(sc.hasNextLine()) 20 { 21 String empCode = sc.next(); 22 String empName = sc.next(); 23 24 String basic = sc.next(); 25 int basicPay = Integer.parseInt(basic); 26 27 String family = sc.next(); 28 int dependentRelatives = Integer.parseInt(family); 29 30 int payment = 0 ; 31 int a = 10000; 32 int b = 5000; 33 int c = 3000; 34 int d = 2000; 35 36 String message = " 社員コード:"+empCode + " 氏名:"+empName + " 支給額:"+payment; 37 38 switch(dependentRelatives) 39 { 40 case 0: 41 payment = basicPay; 42 System.out.println(message); 43 break; 44 45 case 1: 46 payment = basicPay + a; 47 System.out.println(message); 48 break; 49 50 case 2: 51 payment = basicPay + (a+b); 52 System.out.println(message); 53 break; 54 55 case 3: 56 payment = basicPay + (a+c+c); 57 System.out.print(message); 58 break; 59 60 default: 61 if(dependentRelatives >= 4) 62 { 63 int total3People = a + b + c; 64 payment = basicPay + total3People + ((dependentRelatives-3)*d) ; 65 System.out.println(message); 66 break; 67 } 68 //message = " 社員コード:"+empCode + " 氏名:"+empName + " 支給額:"+payment; 69 } 70 //次の行へ 71 sc.nextLine(); 72 } 73 } catch (FileNotFoundException e) { 74 // TODO 自動生成された catch ブロック 75 e.printStackTrace(); 76 } 77 } 78}
試したこと
①messageをdefaultのあとに持ってきて、上記でメッセージとpaymentを初期化
→しかし、messageを初期化するために、paymentを初期化しているとこに「String message = ""」
をすると、空文字のまま出力されていまう。
補足情報(FW/ツールのバージョンなど)
読み込んでいるデータ
01,yamadaHanako,200000,0,
02,satoTaro,200000,1,
03,nakanoYuka,300000,2,
04,odaMasato,400000,3,
05,murataMomoko,500000,4,
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/29 01:49
2021/06/29 01:54
2021/06/29 02:00
2021/06/29 02:01