Java
1 2コード 3```### 前提・実現したいこと 4 5TimeInput1クラスのif文で変数sumに入力した値を足す作業を行っているのですが、実行してみると、0が表示されてしまいます。足し算の結果を正しく表示させるためにはどこのコードを変更させる必要があるのでしょうか? 6回答よろしくお願いいたします。コードは3つのクラスで書いています。 7 8 9### 発生している問題・エラーメッセージ 10コンパイルは問題ないです。 11``` 12エラーメッセージ 13``` 14 15### 該当のソースコード 16```Java 17public class TimerRank{ 18 19 20 21 public static void main(String[] args){ 22 23 24 25 26 27 //System.out.println("時間を入力してください"); 28 29 TimeInput1 timeinput1 = new TimeInput1(); 30 31 timeinput1.roop(); 32 33 TimeExpress timeexpress = new TimeExpress(); 34 35 timeexpress.express(); 36 timeexpress.express1(); 37 timeexpress.express2(); 38 39 40} 41 42 43import java.util.Scanner; 44 45public class TimeInput1{ 46 47 String activity; 48 int time; 49 int sum = 0; 50 int sum1 = 0; 51 int sum2 =0; 52 53 public void setActivity(String activity){ 54 this.activity = activity; 55 } 56 public String getActivity(){ 57 return this.activity; 58 } 59 public void setTime(int time){ 60 this.time = time; 61 } 62 public int getTime(){ 63 return this.time; 64 } 65 public void setSum(int sum){ 66 this.sum = sum; 67 } 68 public int getSum(){ 69 return this.sum; 70 } 71 public void setSum1(int sum1){ 72 this.sum1 = sum1; 73 } 74 public int getSum1(){ 75 return this.sum1; 76 } 77 public void setSum2(int sum2){ 78 this.sum2 = sum2; 79 } 80 public int getSum2(){ 81 return this.sum2; 82 } 83 84 85 Scanner scanner = new Scanner(System.in); 86 public void roop(){ 87 for(int i = 0;i <= 100;i++){ 88 89 System.out.println("動作を入力してください"); 90 this.activity = scanner.next();//nextStringは間違い 91 System.out.println("時間を入力してください"); 92 this.time = scanner.nextInt(); 93 94 if(this.activity.equals("運動")){ 95 this.sum += this.time; 96 System.out.println(this.sum); 97 } 98 99 else if(this.activity.equals("料理")){ 100 this.sum1 += this.time; 101 } 102 else if(this.activity.equals("勉強")){ 103 this.sum2 += this.time; 104 } 105 else{ 106 break; 107 } //最後はelseだけ。文字列の条件はequals("")を使う。 108 109 } 110 } 111 112} 113 114 115public class TimeExpress{ 116 117 TimeInput1 timeinput1 = new TimeInput1(); 118 119 120 public void express(){ 121 System.out.println("運動は" + timeinput1.sum + "です"); 122 } 123 public void express1(){ 124 System.out.println("料理は" + timeinput1.sum1 + "です"); 125 } 126 public void express2(){ 127 System.out.println("勉強は" + timeinput1.sum2 + "です"); 128 } 129 130} 131``` 132```ここに言語名を入力 133JAVA 134``` 135 136### 試したこと 137if文の"運動"のところでsumを表示してみたところ、足し算は行われているようでした。 138問題はTimeExpressクラスで足し算の結果ではなく、初期値の0を表してることかと思いましたが、解決方法がわかりません。 139 140 141### 補足情報(FW/ツールのバージョンなど) 142 143Macのパソコンです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/24 12:30
2018/03/24 13:10
2018/03/24 13:25
2018/03/24 13:58
2018/03/24 14:04
2018/03/25 00:41
2018/03/25 04:36
2018/03/25 07:12
2018/03/25 07:25 編集
2018/03/25 08:06
2018/03/25 08:45
2018/03/25 10:28