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

質問編集履歴

2

コードを修正しました

2020/04/08 02:17

投稿

chimo
chimo

スコア55

title CHANGED
File without changes
body CHANGED
@@ -11,15 +11,15 @@
11
11
  int sum = 0 ; //sumの初期化
12
12
  int each_price = 0 ; //each_priceの初期化
13
13
 
14
- for( i=0 ; i<args.length/2 ; i++ ){
14
+ for( int i=0 ; i<args.length/2 ; i++ ){
15
15
  //コマンドラインに打ち込まれたケーキ名によってそのケーキの値段を決める
16
- if( args[2*i]==ショートケーキ){
16
+ if( args[2*i]=="ショートケーキ"){
17
17
  cake = 320 ;
18
- }else if( args[2*i]==モンブラン ){
18
+ }else if( args[2*i]=="モンブラン" ){
19
19
  cake = 350 ;
20
- }else if( args[2*i]==チョコレートケーキ ){
20
+ }else if( args[2*i]=="チョコレートケーキ" ){
21
21
  cake = 370 ;
22
- }else if( args[2*i]==いちごのタルト ){
22
+ }else if( args[2*i]=="いちごのタルト" ){
23
23
  cake = 400 ;
24
24
  }else{
25
25
  cake = 300 ;
@@ -33,68 +33,4 @@
33
33
  }
34
34
  }
35
35
  ```
36
- すると以下の内容のエラーが出てきました。
37
- 【エラー内容】----------------------
38
- Cakeshop.java:7: error: cannot find symbol
39
- for( i=0 ; i<args.length/2 ; i++ ){
40
- ^
41
- symbol: variable i
42
- location: class Cakeshop
43
- Cakeshop.java:7: error: cannot find symbol
44
- for( i=0 ; i<args.length/2 ; i++ ){
45
- ^
46
- symbol: variable i
47
- location: class Cakeshop
48
- Cakeshop.java:7: error: cannot find symbol
49
- for( i=0 ; i<args.length/2 ; i++ ){
50
- ^
51
- symbol: variable i
52
- location: class Cakeshop
53
- Cakeshop.java:9: error: cannot find symbol
54
- if( args[2*i]==ショートケーキ){
55
- ^
56
- symbol: variable i
57
- location: class Cakeshop
58
- Cakeshop.java:9: error: cannot find symbol
59
- if( args[2*i]==ショートケーキ){
60
- ^
61
- symbol: variable ショートケーキ
62
- location: class Cakeshop
63
- Cakeshop.java:11: error: cannot find symbol
64
- }else if( args[2*i]==モンブラン ){
65
- ^
66
- symbol: variable i
67
- location: class Cakeshop
68
- Cakeshop.java:11: error: cannot find symbol
69
- }else if( args[2*i]==モンブラン ){
70
- ^
71
- symbol: variable モンブラン
72
- location: class Cakeshop
73
- Cakeshop.java:13: error: cannot find symbol
74
- }else if( args[2*i]==チョコレートケーキ ){
75
- ^
76
- symbol: variable i
77
- location: class Cakeshop
78
- Cakeshop.java:13: error: cannot find symbol
79
- }else if( args[2*i]==チョコレートケーキ ){
80
- ^
81
- symbol: variable チョコレートケーキ
82
- location: class Cakeshop
83
- Cakeshop.java:15: error: cannot find symbol
84
- }else if( args[2*i]==いちごのタルト ){
85
- ^
86
- symbol: variable i
87
- location: class Cakeshop
88
- Cakeshop.java:15: error: cannot find symbol
89
- }else if( args[2*i]==いちごのタルト ){
90
- ^
91
- symbol: variable いちごのタルト
92
- location: class Cakeshop
93
- Cakeshop.java:21: error: cannot find symbol
94
- each_price = cake * Integer.parseInt(args[2*i+1]) ;
36
+ すると、エラーは出てきませんでしたが、全てどのケーキも300円として計算されてしまいます...。場合分けの方法が間違ってるのでしょうか。
95
- ^
96
- symbol: variable i
97
- location: class Cakeshop
98
- 12 errors
99
- ーーーーーーーーーーーーーーーーーーーーーーーーーー
100
- 「i」のあるラインにエラーが起きているみたいなので、偶奇分けの方法が間違っているのかなと感じました。しかしコマンドライン引数でうけとった値をfor文の中で偶奇わけする方法を検索してみてもそれらしいものを見つけることができませんでした。そもそも私のアイディア自体が間違っているのかもしれませんが...どなたかご教授おねがいします。

1

構文エラーを修正。また修正後に新たにでてきたエラーを追記致しました

2020/04/08 02:17

投稿

chimo
chimo

スコア55

title CHANGED
File without changes
body CHANGED
@@ -13,19 +13,19 @@
13
13
 
14
14
  for( i=0 ; i<args.length/2 ; i++ ){
15
15
  //コマンドラインに打ち込まれたケーキ名によってそのケーキの値段を決める
16
- if( args[2i]==ショートケーキ){
16
+ if( args[2*i]==ショートケーキ){
17
17
  cake = 320 ;
18
- }else if( args[2i]==モンブラン ){
18
+ }else if( args[2*i]==モンブラン ){
19
19
  cake = 350 ;
20
- }else if( args[2i]==チョコレートケーキ ){
20
+ }else if( args[2*i]==チョコレートケーキ ){
21
21
  cake = 370 ;
22
- }else if( args[2i]==いちごのタルト ){
22
+ }else if( args[2*i]==いちごのタルト ){
23
23
  cake = 400 ;
24
24
  }else{
25
25
  cake = 300 ;
26
26
  }
27
27
 
28
- each_price = cake * Integer.parseInt(args[2i+1]) ; //各ケーキの値段×個数から出た値
28
+ each_price = cake * Integer.parseInt(args[2*i+1]) ; //各ケーキの値段×個数から出た値
29
29
  sum = sum + each_price ; //各ケーキの値段×個数から出た値を加算していき、合計を求める
30
30
  }
31
31
 
@@ -35,72 +35,66 @@
35
35
  ```
36
36
  すると以下の内容のエラーが出てきました。
37
37
  【エラー内容】----------------------
38
- Cakeshop.java:11: error: ']' expected
38
+ Cakeshop.java:7: error: cannot find symbol
39
- if( args[2i]==ショートケーキ){
39
+ for( i=0 ; i<args.length/2 ; i++ ){
40
- ^
40
+ ^
41
+ symbol: variable i
42
+ location: class Cakeshop
41
- Cakeshop.java:11: error: illegal start of expression
43
+ Cakeshop.java:7: error: cannot find symbol
44
+ for( i=0 ; i<args.length/2 ; i++ ){
45
+ ^
46
+ symbol: variable i
47
+ location: class Cakeshop
48
+ Cakeshop.java:7: error: cannot find symbol
49
+ for( i=0 ; i<args.length/2 ; i++ ){
50
+ ^
51
+ symbol: variable i
52
+ location: class Cakeshop
53
+ Cakeshop.java:9: error: cannot find symbol
42
- if( args[2i]==ショートケーキ){
54
+ if( args[2*i]==ショートケーキ){
43
55
  ^
56
+ symbol: variable i
57
+ location: class Cakeshop
44
- Cakeshop.java:11: error: not a statement
58
+ Cakeshop.java:9: error: cannot find symbol
45
- if( args[2i]==ショートケーキ){
59
+ if( args[2*i]==ショートケーキ){
46
- ^
60
+ ^
61
+ symbol: variable ショートケーキ
62
+ location: class Cakeshop
47
- Cakeshop.java:11: error: ';' expected
63
+ Cakeshop.java:11: error: cannot find symbol
48
- if( args[2i]==ショートケーキ){
64
+ }else if( args[2*i]==モンブラン ){
65
+ ^
66
+ symbol: variable i
67
+ location: class Cakeshop
68
+ Cakeshop.java:11: error: cannot find symbol
69
+ }else if( args[2*i]==モンブラン ){
49
70
  ^
71
+ symbol: variable モンブラン
72
+ location: class Cakeshop
50
- Cakeshop.java:13: error: ']' expected
73
+ Cakeshop.java:13: error: cannot find symbol
51
- }else if( args[2i]==モンブラン ){
74
+ }else if( args[2*i]==チョコレートケーキ ){
52
- ^
53
- Cakeshop.java:13: error: illegal start of expression
54
- }else if( args[2i]==モンブラン ){
55
75
  ^
76
+ symbol: variable i
77
+ location: class Cakeshop
56
- Cakeshop.java:13: error: not a statement
78
+ Cakeshop.java:13: error: cannot find symbol
57
- }else if( args[2i]==モンブラン ){
79
+ }else if( args[2*i]==チョコレートケーキ ){
58
- ^
80
+ ^
81
+ symbol: variable チョコレートケーキ
82
+ location: class Cakeshop
59
- Cakeshop.java:13: error: ';' expected
83
+ Cakeshop.java:15: error: cannot find symbol
60
- }else if( args[2i]==モンブラン ){
84
+ }else if( args[2*i]==いちごのタルト ){
61
- ^
62
- Cakeshop.java:13: error: 'else' without 'if'
63
- }else if( args[2i]==モンブラン ){
64
- ^
65
- Cakeshop.java:15: error: ']' expected
66
- }else if( args[2i]==チョコレートケーキ ){
67
- ^
68
- Cakeshop.java:15: error: illegal start of expression
69
- }else if( args[2i]==チョコレートケーキ ){
70
85
  ^
86
+ symbol: variable i
87
+ location: class Cakeshop
71
- Cakeshop.java:15: error: not a statement
88
+ Cakeshop.java:15: error: cannot find symbol
72
- }else if( args[2i]==チョコレーケーキ ){
89
+ }else if( args[2*i]==いちごのタルト ){
73
- ^
90
+ ^
91
+ symbol: variable いちごのタルト
92
+ location: class Cakeshop
74
- Cakeshop.java:15: error: ';' expected
93
+ Cakeshop.java:21: error: cannot find symbol
75
- }else if( args[2i]==チョコレートケーキ ){
94
+ each_price = cake * Integer.parseInt(args[2*i+1]) ;
76
- ^
95
+ ^
77
- Cakeshop.java:15: error: 'else' without 'if'
78
- }else if( args[2i]==チョコレートケーキ ){
79
- ^
80
- Cakeshop.java:17: error: ']' expected
81
- }else if( args[2i]==いちごのタルト ){
96
+ symbol: variable i
82
- ^
83
- Cakeshop.java:17: error: illegal start of expression
84
- }else if( args[2i]==いちごのタルト ){
85
- ^
86
- Cakeshop.java:17: error: not a statement
97
+ location: class Cakeshop
87
- }else if( args[2i]==いちごのタルト ){
88
- ^
89
- Cakeshop.java:17: error: ';' expected
90
- }else if( args[2i]==いちごのタルト ){
91
- ^
92
- Cakeshop.java:17: error: 'else' without 'if'
93
- }else if( args[2i]==いちごのタルト ){
94
- ^
95
- Cakeshop.java:19: error: 'else' without 'if'
96
- }else{
97
- ^
98
- Cakeshop.java:23: error: ']' expected
99
- each_price = cake * Integer.parseInt(args[2i+1]) ;
100
- ^
101
- Cakeshop.java:23: error: ';' expected
102
- each_price = cake * Integer.parseInt(args[2i+1]) ;
103
- ^
104
- 22 errors
98
+ 12 errors
105
99
  ーーーーーーーーーーーーーーーーーーーーーーーーーー
106
100
  「i」のあるラインにエラーが起きているみたいなので、偶奇分けの方法が間違っているのかなと感じました。しかしコマンドライン引数でうけとった値をfor文の中で偶奇わけする方法を検索してみてもそれらしいものを見つけることができませんでした。そもそも私のアイディア自体が間違っているのかもしれませんが...どなたかご教授おねがいします。