teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

2020/06/19 08:52

投稿

michel0000
michel0000

スコア6

title CHANGED
File without changes
body CHANGED
@@ -1,68 +1,51 @@
1
- 下記のソスコードを書いたのです
1
+ 引き続き元Javaプログラマ村上です
2
- カロリーが合算されず困っております。ケース文の中ではカロリーだけを返し、下のコード内にてカロリーを合算させたいのですがどうしたらいいでしょうか?
3
2
 
3
+ 前回は文字列⇔数値の変換コストについて書かせてもらいましたが、
4
- どこのコードがおかしいのうか
4
+ 今回は文字列結合につてそ効率性を検証てみようかなと思います。
5
5
 
6
+ Javaにおける文字列結合は次の4つの方法があります。
6
7
 
7
- int sum = 0;//初期化
8
- int cal = 0;
8
+ プラス演算子
9
9
 
10
+ 1
11
+ 2
12
+ 3
13
+ String s1 = "aaa";
14
+ String s2 = "bbb";
15
+ String s = s1 + s2;
10
- while (true) {
16
+ String#concat()
11
17
 
18
+ 1
19
+ 2
20
+ 3
12
- System.out.println("");
21
+ String s1 = "aaa";
13
- System.out.println("商品(メニューNo:料理名)");
14
- System.out.println("1: 600kcal");
15
- System.out.println("2: 800kcal");
16
- System.out.println("3:700kcal");
17
- System.out.println("4: 860kcal");
18
- System.out.println("");
22
+ String s2 = "bbb";
23
+ String s = s1.concat(s2);
24
+ StringBuffer
19
25
 
26
+ 1
27
+ 2
28
+ 3
29
+ 4
30
+ 5
31
+ 6
20
- System.out.print("選択してください:");
32
+ String s1 = "aaa";
33
+ String s2 = "bbb";
21
- int menu = new java.util.Scanner(System.in).nextInt();
34
+ StringBufferbuf = new StringBuffer();
35
+ buf.append(s1);
36
+ buf.append(s2);
37
+ String s = buf.toString();
38
+ StringBuilder
22
39
 
23
- switch (menu) {
24
-
25
- case 1:
40
+ 1
26
- cal = 600;
27
- break;
28
-
29
- case 2:
41
+ 2
30
- cal = 800;
31
- break;
32
-
33
- case 3:
42
+ 3
34
- cal = 700;
35
- break;
36
-
37
- case 4:
43
+ 4
44
+ 5
38
- cal = 860;
45
+ 6
39
- break;
40
-
41
- case 0:
42
- System.out.println("");
46
+ String s1 = "aaa";
43
- System.out.println("ありがとうございました。");
44
- System.out.println("合計;" + sum + "kcal");
45
-
46
- return;
47
-
48
- }
49
-
50
- int sum2 =sum+cal;//ここで足したいのに足せていない・・・。
51
-
52
- if (sum2 < 2000) {
53
- System.out.println("合計;" + sum2 + "kcal");
54
- System.out.println("");
47
+ String s2 = "bbb";
55
-
48
+ StringBuilder buf = new StringBuilder();
56
- } else {
49
+ buf.append(s1);
57
-
50
+ buf.append(s2);
58
- System.out.println("");
51
+ String s = buf.toString();
59
-
60
- System.out.println("合計カロリーが2000kcalを超えます。注文キャンセル");//2000kcal超えた場合の表示
61
-
62
- System.out.println("合計;" + sum2 + "kcal");
63
- }
64
-
65
- }
66
-
67
- }
68
- }

1

2020/06/19 08:52

投稿

michel0000
michel0000

スコア6

title CHANGED
@@ -1,1 +1,1 @@
1
- java )クラス継承について
1
+ java )合計値計算について
body CHANGED
@@ -1,21 +1,68 @@
1
- java )クラス継承につ
1
+ 下記ソースコードを書たのですが
2
+ カロリーが合算されず困っております。ケース文の中ではカロリーだけを返し、下のコード内にてカロリーを合算させたいのですがどうしたらいいでしょうか?
2
3
 
3
- 長方形を表すクラス(TEST A)とそれを継承した正方形を表すクラス(TEST B)を作成し、
4
- それぞれ情報を入力する。その後、面積を表示するプログラム
5
- ※デフォルトンストラクタは利用こと。
4
+ どこのードがおかしいのでしょうか?
6
- ※SquareクラスのコンストラクタにはRectangleクラスのコンストラクタを利用する
7
5
 
8
- 出力例
9
- >[TEST A]
10
- >Input the width of a rectangle : 4
11
- >Input the height of a rectangle : 12
12
- >
13
- >[TEST B]
14
- >Input the side of a square : 5
15
- >
16
- >[Areas]
17
- >Rectangle{width: 4.0, height: 12.0, area: 48.0}
18
- >Square{side: 5.0, area: 25.0}
19
- >
20
6
 
21
- これはどのように記載をすればいいのでしょうか??
7
+ int sum = 0;//初期化
8
+ int cal = 0;
9
+
10
+ while (true) {
11
+
12
+ System.out.println("");
13
+ System.out.println("商品(メニューNo:料理名)");
14
+ System.out.println("1: 600kcal");
15
+ System.out.println("2: 800kcal");
16
+ System.out.println("3:700kcal");
17
+ System.out.println("4: 860kcal");
18
+ System.out.println("");
19
+
20
+ System.out.print("選択してください:");
21
+ int menu = new java.util.Scanner(System.in).nextInt();
22
+
23
+ switch (menu) {
24
+
25
+ case 1:
26
+ cal = 600;
27
+ break;
28
+
29
+ case 2:
30
+ cal = 800;
31
+ break;
32
+
33
+ case 3:
34
+ cal = 700;
35
+ break;
36
+
37
+ case 4:
38
+ cal = 860;
39
+ break;
40
+
41
+ case 0:
42
+ System.out.println("");
43
+ System.out.println("ありがとうございました。");
44
+ System.out.println("合計;" + sum + "kcal");
45
+
46
+ return;
47
+
48
+ }
49
+
50
+ int sum2 =sum+cal;//ここで足したいのに足せていない・・・。
51
+
52
+ if (sum2 < 2000) {
53
+ System.out.println("合計;" + sum2 + "kcal");
54
+ System.out.println("");
55
+
56
+ } else {
57
+
58
+ System.out.println("");
59
+
60
+ System.out.println("合計カロリーが2000kcalを超えます。注文キャンセル");//2000kcal超えた場合の表示
61
+
62
+ System.out.println("合計;" + sum2 + "kcal");
63
+ }
64
+
65
+ }
66
+
67
+ }
68
+ }