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

質問編集履歴

4

プログラムの追加

2020/02/23 02:28

投稿

JUN1207
JUN1207

スコア15

title CHANGED
File without changes
body CHANGED
@@ -153,4 +153,68 @@
153
153
  }
154
154
  }
155
155
 
156
+ ```
157
+
158
+ junziさんにプログラムのコードを書いていただきそれを実際に書いて実行してみました。
159
+ が、私の考えているプログラムに今一歩足りなくて、、、、
160
+ やりたいことは以下の通りです。
161
+ わかる方がいらっしゃいましたらお力をお貸しください。
162
+
163
+ ```Java
164
+ package practice;
165
+
166
+ import java.util.Scanner;
167
+
168
+ public class Practice41 {
169
+ public static void main(String[]args) {
170
+
171
+ //"性別と年齢を入力し、それぞれに対応した入場料金を出力する。
172
+ //・boyで20歳以上の時は2000円
173
+ //・boyで20歳未満の時は1800円
174
+ //・girlで20歳以上の時は1600円
175
+ //・girlで20歳未満の時は1400円"
176
+
177
+ System.out.println("性別を入力してください。");
178
+
179
+ Scanner scanner = new Scanner(System.in);
180
+
181
+ String gender = scanner.nextLine();
182
+
183
+ if (gender.matches("boy||男||おとこ||girl||女||おんな")) {
184
+ System.out.println(gender);
185
+ } else {
186
+ System.out.println("正しく入てください。");
187
+ }
188
+
189
+ //性別以外の文字を入力しても「年齢入力」のコードにいってしまう。
190
+ //ここで性別以外の文字が入ったら次の命令に行かないようにしたい。
191
+ //またはもう一度『性別の入力』へループさせたい。
192
+
193
+ System.out.println("年齢を入力してください。");
194
+
195
+ String ageStr = scanner.nextLine();
196
+ int age = Integer.parseInt(ageStr);
197
+ scanner.close();
198
+ if (gender.equals("boy") || gender.equals("男") || gender.equals("おとこ")) {
199
+ if (age >= 20) {
200
+ System.out.println("2000円");
201
+ } else {
202
+ System.out.println("1800円");
203
+ }
204
+
205
+ //ここからしたのプログラムが動作しない。
206
+ //「girl、女、おんな」をいれ、年齢をいれたあとに値段の表示がされない。
207
+
208
+
209
+ if (gender.equals("girl") || gender.equals("女") || gender.equals("おんな")) {
210
+ if (age >= 20) {
211
+ System.out.println("1600円");
212
+ } else {
213
+ System.out.println("1400円");
214
+ }
215
+ }
216
+ }
217
+ }
218
+ }
219
+
156
220
  ```

3

修正プログラムの追加

2020/02/23 02:28

投稿

JUN1207
JUN1207

スコア15

title CHANGED
File without changes
body CHANGED
@@ -57,4 +57,100 @@
57
57
 
58
58
  お分かりになる方がいらっしゃいましたらお力を貸してください。
59
59
 
60
- よろしくお願いいたします。
60
+ よろしくお願いいたします。
61
+
62
+ プログラムを修正したのですが、はじめの『boy』のみうまくいき、
63
+ あとのプログラムが思ったように動作してくれません。
64
+ またプログラムが長すぎるのですが、私にはいまいちわからずお力を
65
+ 貸していただきたいです。
66
+ (現在も試行錯誤中です。)
67
+
68
+ ```Java
69
+ package practice;
70
+
71
+ import java.util.Scanner;
72
+
73
+ public class Practice4 {
74
+
75
+ public static void main(String[]args) {
76
+
77
+ //"性別と年齢を入力し、それぞれに対応した入場料金を出力する。
78
+ //・boyで20歳以上の時は2000円
79
+ //・boyで20歳未満の時は1800円
80
+ //・girlで20歳以上の時は1600円
81
+ //・girlで20歳未満の時は1400円"
82
+
83
+ System.out.println("性別を入力してください。");
84
+
85
+ Scanner scanner = new Scanner(System.in);
86
+
87
+ String gender = scanner.nextLine();
88
+
89
+ try {
90
+ if(gender.matches("boy")) {
91
+ System.out.println("boy");
92
+ System.out.println("年齢を入力してください。");
93
+ int age = scanner.nextInt();
94
+ if ( age >= 20 ) {
95
+ System.out.println("2000円");
96
+ } else if ( age <= 19 ) {
97
+ System.out.println("1800円");
98
+
99
+ } else if (gender.matches("男")) {
100
+ System.out.println("男");
101
+ System.out.println("年齢を入力してください。");
102
+ if ( age >= 20 ) {
103
+ System.out.println("2000円");
104
+ } else if ( age <= 19 ) {
105
+ System.out.println("1800円");
106
+
107
+ } else if (gender.matches("おとこ")) {
108
+ System.out.println("おとこ");
109
+ System.out.println("年齢を入力してください。");
110
+ if ( age >= 20 ) {
111
+ System.out.println("2000円");
112
+ } else if ( age <= 19 ) {
113
+ System.out.println("1800円");
114
+
115
+ } else if (gender.matches("girl")) {
116
+ System.out.println("girl");
117
+ System.out.println("年齢を入力してください。");
118
+ if ( age >= 20 ) {
119
+ System.out.println("1600円");
120
+ } else if ( age <= 19 ) {
121
+ System.out.println("1400円");
122
+
123
+ } else if (gender.matches("女")) {
124
+ System.out.println("女");
125
+ System.out.println("年齢を入力してくだい。");
126
+ if ( age >= 20 ) {
127
+ System.out.println("1600円");
128
+ } else if ( age <= 19 ) {
129
+ System.out.println("1400円");
130
+
131
+ } else if (gender.matches("おんな")) {
132
+ System.out.println("おんな");
133
+ System.out.println("年齢を入力してください。");
134
+ if ( age >= 20 ) {
135
+ System.out.println("1600円");
136
+ } else if ( age <= 19 ) {
137
+ System.out.println("1400円");
138
+
139
+ } else {
140
+ System.out.println("正しく入力してください。");
141
+ }
142
+ }
143
+ }
144
+ }
145
+ }
146
+ }
147
+ }
148
+ } catch(Exception e) { // エラー(Exception)発生時のみ
149
+ e.printStackTrace();
150
+ } finally {
151
+ scanner.close();
152
+ }
153
+ }
154
+ }
155
+
156
+ ```

2

コードの編集

2020/02/22 15:02

投稿

JUN1207
JUN1207

スコア15

title CHANGED
File without changes
body CHANGED
@@ -40,10 +40,10 @@
40
40
 
41
41
  System.out.println("年齢を入力してください。");
42
42
 
43
-
44
43
  if (gender.matches("boy"));
45
44
  if (gender.matches("男"));
46
- } else int age = scanner.nextInt();if (age >= 20);{
45
+ int age = scanner.nextInt();
46
+ } else if (age >= 20);{
47
47
  System.out.println("2000円");
48
48
  } else if (age <= 19 );{
49
49
  System.out.println("1800円");

1

本文の編集

2020/02/22 01:36

投稿

JUN1207
JUN1207

スコア15

title CHANGED
File without changes
body CHANGED
@@ -53,4 +53,8 @@
53
53
 
54
54
  ```
55
55
 
56
- このプログラの男性、女性、年齢によって金額を変える分岐がうまくいきません。
56
+ このプログラの男性、女性、年齢によって金額を変える分岐がうまくいきません。
57
+
58
+ お分かりになる方がいらっしゃいましたらお力を貸してください。
59
+
60
+ よろしくお願いいたします。