質問編集履歴

1

文書の訂正

2016/08/02 09:03

投稿

091415
091415

スコア10

test CHANGED
File without changes
test CHANGED
@@ -24,16 +24,6 @@
24
24
 
25
25
  javaで計算機(電卓)のようなシステムを作っています。
26
26
 
27
- ###発生している問題・エラーメッセージ
28
-
29
-
30
-
31
- ```
32
-
33
- エラーメッセージ
34
-
35
- ```
36
-
37
27
 
38
28
 
39
29
  ###該当のソースコード
@@ -48,150 +38,148 @@
48
38
 
49
39
  {
50
40
 
51
- public static void main(String[] args)throws IOException
41
+ public static void main(String[] args)throws IOException
52
-
42
+
53
- {
43
+ {
54
-
44
+
55
- BufferedReader br =
45
+ BufferedReader br =
56
-
46
+
57
- new BufferedReader(new InputStreamReader(System.in));
47
+ new BufferedReader(new InputStreamReader(System.in));
58
48
 
59
49
 
60
50
 
61
- System.out.println("計算式を入力してください。例2+3=(Enter)で計算開始。");
51
+ System.out.println("計算式を入力してください。例2+3=(Enter)で計算開始。");
62
-
52
+
63
- String input = br.readLine();
53
+ String input = br.readLine();
64
54
 
65
55
 
66
56
 
67
- //配列の宣言と要素の確保
57
+ //配列の宣言と要素の確保
68
-
58
+
69
- String sum[] = new String[input.length()];
59
+ String sum[] = new String[input.length()];
70
-
60
+
71
- String number = "";
61
+ String number = "";
72
-
62
+
73
- int s = 0;
63
+ int s = 0;
74
-
64
+
75
- int goukei =0;
65
+ int goukei =0;
76
-
66
+
77
- char enzan = ' ';
67
+ char enzan = ' ';
78
68
 
79
69
 
80
70
 
81
- //for文で繰り返し処理
71
+ //for文で繰り返し処理
82
-
72
+
83
- for(int i=0; i < input.length(); i++){
73
+ for(int i=0; i < input.length(); i++){ //文字列から1文字ずつ抽出
84
-
85
- //文字列から1文字ずつ抽出
74
+
86
-
87
- char mo = input.charAt(i);
75
+ char mo = input.charAt(i);
88
-
76
+
89
- if(i == input.length()-1){
77
+ if(i == input.length()-1){
90
-
78
+
91
- System.out.println("あああああああ" + s);
79
+ System.out.println("あああああああ" + s);
80
+
81
+ sum[s] = number;
82
+
83
+ }
84
+
85
+ else{
86
+
87
+ if(mo == '+' || mo == '-'|| mo == '*'|| mo == '/'){
88
+
89
+ //配列sumに代入??
92
90
 
93
91
  sum[s] = number;
94
92
 
93
+ s++;
94
+
95
+ sum[s] = String.valueOf(mo);//数値から文字列の変換
96
+
97
+ s++;
98
+
99
+ number ="";
100
+
101
+ }
102
+
103
+ else {
104
+
105
+ //変数numberにmoを代入
106
+
107
+ number = number + mo;
108
+
95
109
  }
96
110
 
111
+ }
112
+
113
+ }
114
+
115
+ //for文で繰り返し処理
116
+
117
+ for(int j=0; j<sum.length; j++){
118
+
119
+ if(sum[j] == null){
120
+
121
+ break;
122
+
123
+ }
124
+
125
+ if(j == 0){
126
+
127
+ goukei = Integer.parseInt(sum[j]);
128
+
129
+ }
130
+
131
+ else{
132
+
133
+ if(sum[j].equals("*") || sum[j].equals("/")|| sum[j].equals("+")|| sum[j].equals("-")){
134
+
135
+ enzan = sum[j].charAt(0);
136
+
137
+ }
138
+
97
139
  else{
98
140
 
99
- if(mo == '+' || mo == '-'|| mo == '*'|| mo == '/'){
141
+ //switch文で条件によって処理をコントロール
142
+
100
-
143
+ switch(enzan){
144
+
145
+ case '*':
146
+
147
+ goukei *= Integer.parseInt(sum[j]);
148
+
149
+ break;
150
+
101
- //配列sumに代入??
151
+ case '/':
102
-
152
+
103
- sum[s] = number;
153
+ goukei /= Integer.parseInt(sum[j]);
104
-
154
+
105
- s++;
155
+ break;
106
-
107
- sum[s] = String.valueOf(mo);//数値から文字列の変換
156
+
108
-
109
- s++;
110
-
111
- number ="";
157
+ case '+':
158
+
159
+ goukei += Integer.parseInt(sum[j]);
160
+
161
+ break;
162
+
163
+ case '-':
164
+
165
+ goukei -= Integer.parseInt(sum[j]);
166
+
167
+ break;
168
+
169
+ default:
170
+
171
+ System.out.println("計算できません。もう一度入力し直してください。");
172
+
173
+ break;
174
+
175
+ }
112
176
 
113
177
  }
114
178
 
115
- else {
116
-
117
- //変数numberにmoを代入
118
-
119
- number = number + mo;
120
-
121
- }
122
-
123
179
  }
124
180
 
125
181
  }
126
182
 
127
- //for文で繰り返し処理
128
-
129
- for(int j=0; j<sum.length; j++){
130
-
131
- if(sum[j] == null){
132
-
133
- break;
134
-
135
- }
136
-
137
- if(j == 0){
138
-
139
- goukei = Integer.parseInt(sum[j]);
140
-
141
- }
142
-
143
- else{
144
-
145
- if(sum[j].equals("*") || sum[j].equals("/")|| sum[j].equals("+")|| sum[j].equals("-")){
146
-
147
- enzan = sum[j].charAt(0);
148
-
149
- }
150
-
151
- else{
152
-
153
- //switch文で条件によって処理をコントロール
154
-
155
- switch(enzan){
156
-
157
- case '*':
158
-
159
- goukei *= Integer.parseInt(sum[j]);
160
-
161
- break;
162
-
163
- case '/':
164
-
165
- goukei /= Integer.parseInt(sum[j]);
166
-
167
- break;
168
-
169
- case '+':
170
-
171
- goukei += Integer.parseInt(sum[j]);
172
-
173
- break;
174
-
175
- case '-':
176
-
177
- goukei -= Integer.parseInt(sum[j]);
178
-
179
- break;
180
-
181
- default:
182
-
183
- System.out.println("計算できません。もう一度入力し直してください。");
184
-
185
- break;
186
-
187
- }
188
-
189
- }
190
-
191
- }
192
-
193
- }
194
-
195
183
  //合計を出力する
196
184
 
197
185
  System.out.println("合計は" + goukei + "です。");