質問編集履歴

4

プログラムの追加

2020/02/23 02:28

投稿

JUN1207
JUN1207

スコア15

test CHANGED
File without changes
test CHANGED
@@ -309,3 +309,131 @@
309
309
 
310
310
 
311
311
  ```
312
+
313
+
314
+
315
+ junziさんにプログラムのコードを書いていただきそれを実際に書いて実行してみました。
316
+
317
+ が、私の考えているプログラムに今一歩足りなくて、、、、
318
+
319
+ やりたいことは以下の通りです。
320
+
321
+ わかる方がいらっしゃいましたらお力をお貸しください。
322
+
323
+
324
+
325
+ ```Java
326
+
327
+ package practice;
328
+
329
+
330
+
331
+ import java.util.Scanner;
332
+
333
+
334
+
335
+ public class Practice41 {
336
+
337
+ public static void main(String[]args) {
338
+
339
+
340
+
341
+ //"性別と年齢を入力し、それぞれに対応した入場料金を出力する。
342
+
343
+ //・boyで20歳以上の時は2000円
344
+
345
+ //・boyで20歳未満の時は1800円
346
+
347
+ //・girlで20歳以上の時は1600円
348
+
349
+ //・girlで20歳未満の時は1400円"
350
+
351
+
352
+
353
+ System.out.println("性別を入力してください。");
354
+
355
+
356
+
357
+ Scanner scanner = new Scanner(System.in);
358
+
359
+
360
+
361
+ String gender = scanner.nextLine();
362
+
363
+
364
+
365
+ if (gender.matches("boy||男||おとこ||girl||女||おんな")) {
366
+
367
+ System.out.println(gender);
368
+
369
+ } else {
370
+
371
+ System.out.println("正しく入てください。");
372
+
373
+ }
374
+
375
+
376
+
377
+ //性別以外の文字を入力しても「年齢入力」のコードにいってしまう。
378
+
379
+ //ここで性別以外の文字が入ったら次の命令に行かないようにしたい。
380
+
381
+ //またはもう一度『性別の入力』へループさせたい。
382
+
383
+
384
+
385
+ System.out.println("年齢を入力してください。");
386
+
387
+
388
+
389
+ String ageStr = scanner.nextLine();
390
+
391
+ int age = Integer.parseInt(ageStr);
392
+
393
+ scanner.close();
394
+
395
+ if (gender.equals("boy") || gender.equals("男") || gender.equals("おとこ")) {
396
+
397
+ if (age >= 20) {
398
+
399
+ System.out.println("2000円");
400
+
401
+ } else {
402
+
403
+ System.out.println("1800円");
404
+
405
+ }
406
+
407
+
408
+
409
+ //ここからしたのプログラムが動作しない。
410
+
411
+ //「girl、女、おんな」をいれ、年齢をいれたあとに値段の表示がされない。
412
+
413
+
414
+
415
+
416
+
417
+ if (gender.equals("girl") || gender.equals("女") || gender.equals("おんな")) {
418
+
419
+ if (age >= 20) {
420
+
421
+ System.out.println("1600円");
422
+
423
+ } else {
424
+
425
+ System.out.println("1400円");
426
+
427
+ }
428
+
429
+ }
430
+
431
+ }
432
+
433
+ }
434
+
435
+ }
436
+
437
+
438
+
439
+ ```

3

修正プログラムの追加

2020/02/23 02:28

投稿

JUN1207
JUN1207

スコア15

test CHANGED
File without changes
test CHANGED
@@ -117,3 +117,195 @@
117
117
 
118
118
 
119
119
  よろしくお願いいたします。
120
+
121
+
122
+
123
+ プログラムを修正したのですが、はじめの『boy』のみうまくいき、
124
+
125
+ あとのプログラムが思ったように動作してくれません。
126
+
127
+ またプログラムが長すぎるのですが、私にはいまいちわからずお力を
128
+
129
+ 貸していただきたいです。
130
+
131
+ (現在も試行錯誤中です。)
132
+
133
+
134
+
135
+ ```Java
136
+
137
+ package practice;
138
+
139
+
140
+
141
+ import java.util.Scanner;
142
+
143
+
144
+
145
+ public class Practice4 {
146
+
147
+
148
+
149
+ public static void main(String[]args) {
150
+
151
+
152
+
153
+ //"性別と年齢を入力し、それぞれに対応した入場料金を出力する。
154
+
155
+ //・boyで20歳以上の時は2000円
156
+
157
+ //・boyで20歳未満の時は1800円
158
+
159
+ //・girlで20歳以上の時は1600円
160
+
161
+ //・girlで20歳未満の時は1400円"
162
+
163
+
164
+
165
+ System.out.println("性別を入力してください。");
166
+
167
+
168
+
169
+ Scanner scanner = new Scanner(System.in);
170
+
171
+
172
+
173
+ String gender = scanner.nextLine();
174
+
175
+
176
+
177
+ try {
178
+
179
+ if(gender.matches("boy")) {
180
+
181
+ System.out.println("boy");
182
+
183
+ System.out.println("年齢を入力してください。");
184
+
185
+ int age = scanner.nextInt();
186
+
187
+ if ( age >= 20 ) {
188
+
189
+ System.out.println("2000円");
190
+
191
+ } else if ( age <= 19 ) {
192
+
193
+ System.out.println("1800円");
194
+
195
+
196
+
197
+ } else if (gender.matches("男")) {
198
+
199
+ System.out.println("男");
200
+
201
+ System.out.println("年齢を入力してください。");
202
+
203
+ if ( age >= 20 ) {
204
+
205
+ System.out.println("2000円");
206
+
207
+ } else if ( age <= 19 ) {
208
+
209
+ System.out.println("1800円");
210
+
211
+
212
+
213
+ } else if (gender.matches("おとこ")) {
214
+
215
+ System.out.println("おとこ");
216
+
217
+ System.out.println("年齢を入力してください。");
218
+
219
+ if ( age >= 20 ) {
220
+
221
+ System.out.println("2000円");
222
+
223
+ } else if ( age <= 19 ) {
224
+
225
+ System.out.println("1800円");
226
+
227
+
228
+
229
+ } else if (gender.matches("girl")) {
230
+
231
+ System.out.println("girl");
232
+
233
+ System.out.println("年齢を入力してください。");
234
+
235
+ if ( age >= 20 ) {
236
+
237
+ System.out.println("1600円");
238
+
239
+ } else if ( age <= 19 ) {
240
+
241
+ System.out.println("1400円");
242
+
243
+
244
+
245
+ } else if (gender.matches("女")) {
246
+
247
+ System.out.println("女");
248
+
249
+ System.out.println("年齢を入力してくだい。");
250
+
251
+ if ( age >= 20 ) {
252
+
253
+ System.out.println("1600円");
254
+
255
+ } else if ( age <= 19 ) {
256
+
257
+ System.out.println("1400円");
258
+
259
+
260
+
261
+ } else if (gender.matches("おんな")) {
262
+
263
+ System.out.println("おんな");
264
+
265
+ System.out.println("年齢を入力してください。");
266
+
267
+ if ( age >= 20 ) {
268
+
269
+ System.out.println("1600円");
270
+
271
+ } else if ( age <= 19 ) {
272
+
273
+ System.out.println("1400円");
274
+
275
+
276
+
277
+ } else {
278
+
279
+ System.out.println("正しく入力してください。");
280
+
281
+ }
282
+
283
+ }
284
+
285
+ }
286
+
287
+ }
288
+
289
+ }
290
+
291
+ }
292
+
293
+ }
294
+
295
+ } catch(Exception e) { // エラー(Exception)発生時のみ
296
+
297
+ e.printStackTrace();
298
+
299
+ } finally {
300
+
301
+ scanner.close();
302
+
303
+ }
304
+
305
+ }
306
+
307
+ }
308
+
309
+
310
+
311
+ ```

2

コードの編集

2020/02/22 15:02

投稿

JUN1207
JUN1207

スコア15

test CHANGED
File without changes
test CHANGED
@@ -82,13 +82,13 @@
82
82
 
83
83
 
84
84
 
85
-
86
-
87
85
  if (gender.matches("boy"));
88
86
 
89
87
  if (gender.matches("男"));
90
88
 
91
- } else int age = scanner.nextInt();if (age >= 20);{
89
+ int age = scanner.nextInt();
90
+
91
+ } else if (age >= 20);{
92
92
 
93
93
  System.out.println("2000円");
94
94
 

1

本文の編集

2020/02/22 01:36

投稿

JUN1207
JUN1207

スコア15

test CHANGED
File without changes
test CHANGED
@@ -109,3 +109,11 @@
109
109
 
110
110
 
111
111
  このプログラの男性、女性、年齢によって金額を変える分岐がうまくいきません。
112
+
113
+
114
+
115
+ お分かりになる方がいらっしゃいましたらお力を貸してください。
116
+
117
+
118
+
119
+ よろしくお願いいたします。