質問編集履歴

2

2020/06/19 08:52

投稿

michel0000
michel0000

スコア6

test CHANGED
File without changes
test CHANGED
@@ -1,135 +1,101 @@
1
- 下記のソスコードを書いたのです
1
+ 引き続き元Javaプログラマ村上です
2
-
3
- カロリーが合算されず困っております。ケース文の中ではカロリーだけを返し、下のコード内にてカロリーを合算させたいのですがどうしたらいいでしょうか?
4
2
 
5
3
 
6
4
 
5
+ 前回は文字列⇔数値の変換コストについて書かせてもらいましたが、
6
+
7
- どこのコードがおかしいのうか
7
+ 今回は文字列結合につてそ効率性を検証てみようかなと思います。
8
8
 
9
9
 
10
10
 
11
-
12
-
13
- int sum = 0;//初期化
11
+ Javaにおける文字列結合は次の4つの方法があります。
14
-
15
- int cal = 0;
16
12
 
17
13
 
18
14
 
19
- while (true) {
15
+ プラス演算子
20
16
 
21
17
 
22
18
 
23
- System.out.println("");
19
+ 1
24
20
 
25
- System.out.println("商品(メニューNo:料理名)");
21
+ 2
26
22
 
27
- System.out.println("1: 600kcal");
23
+ 3
28
24
 
29
- System.out.println("2: 800kcal");
25
+ String s1 = "aaa";
30
26
 
31
- System.out.println("3:700kcal");
27
+ String s2 = "bbb";
32
28
 
33
- System.out.println("4: 860kcal");
29
+ String s = s1 + s2;
34
30
 
35
- System.out.println("");
31
+ String#concat()
36
32
 
37
33
 
38
34
 
39
- System.out.print("選択してください:");
35
+ 1
40
36
 
37
+ 2
38
+
39
+ 3
40
+
41
+ String s1 = "aaa";
42
+
43
+ String s2 = "bbb";
44
+
41
- int menu = new java.util.Scanner(System.in).nextInt();
45
+ String s = s1.concat(s2);
46
+
47
+ StringBuffer
42
48
 
43
49
 
44
50
 
51
+ 1
52
+
53
+ 2
54
+
55
+ 3
56
+
57
+ 4
58
+
59
+ 5
60
+
61
+ 6
62
+
63
+ String s1 = "aaa";
64
+
65
+ String s2 = "bbb";
66
+
67
+ StringBufferbuf = new StringBuffer();
68
+
45
- switch (menu) {
69
+ buf.append(s1);
70
+
71
+ buf.append(s2);
72
+
73
+ String s = buf.toString();
74
+
75
+ StringBuilder
46
76
 
47
77
 
48
78
 
49
- case 1:
79
+ 1
50
80
 
51
- cal = 600;
81
+ 2
52
82
 
53
- break;
83
+ 3
54
84
 
85
+ 4
55
86
 
87
+ 5
56
88
 
57
- case 2:
89
+ 6
58
90
 
59
- cal = 800;
91
+ String s1 = "aaa";
60
92
 
61
- break;
93
+ String s2 = "bbb";
62
94
 
95
+ StringBuilder buf = new StringBuilder();
63
96
 
97
+ buf.append(s1);
64
98
 
65
- case 3:
99
+ buf.append(s2);
66
100
 
67
- cal = 700;
68
-
69
- break;
70
-
71
-
72
-
73
- case 4:
74
-
75
- cal = 860;
76
-
77
- break;
78
-
79
-
80
-
81
- case 0:
82
-
83
- System.out.println("");
101
+ String s = buf.toString();
84
-
85
- System.out.println("ありがとうございました。");
86
-
87
- System.out.println("合計;" + sum + "kcal");
88
-
89
-
90
-
91
- return;
92
-
93
-
94
-
95
- }
96
-
97
-
98
-
99
- int sum2 =sum+cal;//ここで足したいのに足せていない・・・。
100
-
101
-
102
-
103
- if (sum2 < 2000) {
104
-
105
- System.out.println("合計;" + sum2 + "kcal");
106
-
107
- System.out.println("");
108
-
109
-
110
-
111
- } else {
112
-
113
-
114
-
115
- System.out.println("");
116
-
117
-
118
-
119
- System.out.println("合計カロリーが2000kcalを超えます。注文キャンセル");//2000kcal超えた場合の表示
120
-
121
-
122
-
123
- System.out.println("合計;" + sum2 + "kcal");
124
-
125
- }
126
-
127
-
128
-
129
- }
130
-
131
-
132
-
133
- }
134
-
135
- }

1

2020/06/19 08:52

投稿

michel0000
michel0000

スコア6

test CHANGED
@@ -1 +1 @@
1
- java )クラス継承について
1
+ java )合計値計算について
test CHANGED
@@ -1,41 +1,135 @@
1
- java )クラスの継承について
1
+ 下記のソーコードを書いたですが
2
+
3
+ カロリーが合算されず困っております。ケース文の中ではカロリーだけを返し、下のコード内にてカロリーを合算させたいのですがどうしたらいいでしょうか?
2
4
 
3
5
 
4
6
 
5
- 長方形を表すクラス(TEST A)とそれを継承した正方形を表すクラス(TEST B)を作成し、
6
-
7
- それぞれ情報を入力する。その後、面積を表示するプログラム
8
-
9
- ※デフォルトンストラクタは利用こと。
7
+ どこのードがおかしいのでしょうか?
10
-
11
- ※SquareクラスのコンストラクタにはRectangleクラスのコンストラクタを利用する
12
8
 
13
9
 
14
10
 
15
- 出力例
16
11
 
17
- >[TEST A]
18
12
 
19
- >Input the width of a rectangle : 4
13
+ int sum = 0;//初期化
20
14
 
21
- >Input the height of a rectangle : 12
22
-
23
- >
24
-
25
- >[TEST B]
15
+ int cal = 0;
26
-
27
- >Input the side of a square : 5
28
-
29
- >
30
-
31
- >[Areas]
32
-
33
- >Rectangle{width: 4.0, height: 12.0, area: 48.0}
34
-
35
- >Square{side: 5.0, area: 25.0}
36
-
37
- >
38
16
 
39
17
 
40
18
 
19
+ while (true) {
20
+
21
+
22
+
23
+ System.out.println("");
24
+
25
+ System.out.println("商品(メニューNo:料理名)");
26
+
27
+ System.out.println("1: 600kcal");
28
+
29
+ System.out.println("2: 800kcal");
30
+
31
+ System.out.println("3:700kcal");
32
+
33
+ System.out.println("4: 860kcal");
34
+
35
+ System.out.println("");
36
+
37
+
38
+
39
+ System.out.print("選択してください:");
40
+
41
+ int menu = new java.util.Scanner(System.in).nextInt();
42
+
43
+
44
+
45
+ switch (menu) {
46
+
47
+
48
+
49
+ case 1:
50
+
51
+ cal = 600;
52
+
53
+ break;
54
+
55
+
56
+
57
+ case 2:
58
+
59
+ cal = 800;
60
+
61
+ break;
62
+
63
+
64
+
65
+ case 3:
66
+
67
+ cal = 700;
68
+
69
+ break;
70
+
71
+
72
+
73
+ case 4:
74
+
75
+ cal = 860;
76
+
77
+ break;
78
+
79
+
80
+
81
+ case 0:
82
+
83
+ System.out.println("");
84
+
85
+ System.out.println("ありがとうございました。");
86
+
87
+ System.out.println("合計;" + sum + "kcal");
88
+
89
+
90
+
91
+ return;
92
+
93
+
94
+
95
+ }
96
+
97
+
98
+
99
+ int sum2 =sum+cal;//ここで足したいのに足せていない・・・。
100
+
101
+
102
+
41
- これはどのように記載をすればいいのでしょうか??
103
+ if (sum2 < 2000) {
104
+
105
+ System.out.println("合計;" + sum2 + "kcal");
106
+
107
+ System.out.println("");
108
+
109
+
110
+
111
+ } else {
112
+
113
+
114
+
115
+ System.out.println("");
116
+
117
+
118
+
119
+ System.out.println("合計カロリーが2000kcalを超えます。注文キャンセル");//2000kcal超えた場合の表示
120
+
121
+
122
+
123
+ System.out.println("合計;" + sum2 + "kcal");
124
+
125
+ }
126
+
127
+
128
+
129
+ }
130
+
131
+
132
+
133
+ }
134
+
135
+ }