質問編集履歴

3

文法の修正

2019/08/13 09:02

投稿

javarou
javarou

スコア3

test CHANGED
File without changes
test CHANGED
@@ -10,9 +10,13 @@
10
10
 
11
11
  下記のようなプログラミングを作りたいのですが、途中でつまずいてしまいました。
12
12
 
13
- どなたか手助けお願いいたします。まっず
13
+ どなたか手助けお願いいたします。
14
14
 
15
+ このソースだと、score(所持金)が0になっても、ラウンドが経過してしまいます。
16
+
17
+ なぜでしょうか?
18
+
15
- 分からないところは、2ラウン目以降の金額の反映。try catch構文の挿入です。
19
+ また、ここはこうしたほうがいよいうアバイスがあればお願いいたします。
16
20
 
17
21
 
18
22
 

2

書式の改善、少しプログラムを進めました。

2019/08/13 09:01

投稿

javarou
javarou

スコア3

test CHANGED
File without changes
test CHANGED
@@ -17,8 +17,6 @@
17
17
 
18
18
 
19
19
  ```
20
-
21
- package jp.hermes.main.game_a;
22
20
 
23
21
 
24
22
 

1

このソースだと、scoreが0になっても続いてしまうのですがなぜでしょうか?(while文で所持金が0になった時点で終了にしなければいけない。)

2019/08/13 08:58

投稿

javarou
javarou

スコア3

test CHANGED
File without changes
test CHANGED
@@ -16,7 +16,15 @@
16
16
 
17
17
 
18
18
 
19
+ ```
20
+
21
+ package jp.hermes.main.game_a;
22
+
23
+
24
+
19
25
  import java.util.Random;
26
+
27
+
20
28
 
21
29
  public class DiceGame {
22
30
 
@@ -30,55 +38,93 @@
30
38
 
31
39
  int score = 1000;
32
40
 
33
- while(i<5) {
41
+ int b;
34
42
 
43
+ String a;
44
+
45
+ while (i < 5 || score <= 0) {
46
+
35
- Random rnd = new Random();
47
+ Random rnd = new Random();
36
48
 
37
49
 
38
50
 
39
- System.out.println((i + 1) + "回目の処理です。現在の所持金"+score+"円");
51
+ System.out.println((i + 1) + "回目の処理です。現在の所持金" + score + "円");
40
52
 
41
- i++;
53
+ i++;
42
54
 
43
- System.out.println("サイコロを2つ振ります");
55
+ System.out.println("サイコロを2つ振ります");
44
56
 
45
- System.out.println("合計の数が偶数(even)か奇数(odd)かを予想してください");
57
+ System.out.println("合計の数が偶数(even)か奇数(odd)かを予想してください");
46
58
 
47
59
 
48
60
 
49
- String a = new java.util.Scanner(System.in).nextLine();
61
+ while (true) {
50
62
 
51
- System.out.println("掛け金を入力してください。");
63
+ a = new java.util.Scanner(System.in).nextLine();
52
64
 
53
65
 
54
66
 
55
- int b = new java.util.Scanner(System.in).nextInt();
67
+ if ((a.equals("even")) || a.equals("odd")) {
56
68
 
57
- int num = rnd.nextInt(12);
69
+ break;
58
70
 
71
+ }
72
+
73
+ }
74
+
59
- num++;
75
+ System.out.println("掛け金を入力してください。");
60
76
 
61
77
 
62
78
 
63
- if(num % 2 == 0) {
79
+ while (true) {
64
80
 
65
- System.out.println("偶数"+ num +"が出ました。");
81
+ b = new java.util.Scanner(System.in).nextInt();
66
82
 
67
- }else {
68
83
 
69
- System.out.println("奇数" +num+"が出ました。");
70
84
 
71
- }
85
+ if ((b > 0 && b <= score)) {
72
86
 
73
- if((a.equals("even"))&&(num % 2 == 0)) {
87
+ break;
74
88
 
75
- System.out.println("あなたの勝ちです。掛け金" + b +"円が増え、あなたの所持金は"+ (score + b)+"円になりました。");
89
+ }
76
90
 
77
- }else{
91
+ }
78
92
 
79
- System.out.println("あなたの負けです。掛け金は"+ b +"円が減り、あなたの所持金は"+(score - b)+"円になりました。");
93
+ int num = rnd.nextInt(12);
80
94
 
95
+ num++;
96
+
97
+
98
+
99
+ if (num % 2 == 0) {
100
+
101
+ System.out.println("偶数" + num + "が出ました。");
102
+
103
+ } else {
104
+
105
+ System.out.println("奇数" + num + "が出ました。");
106
+
81
- }
107
+ }
108
+
109
+ if ((a.equals("even")) && (num % 2 == 0)) {
110
+
111
+ System.out.println("あなたの勝ちです。掛け金" + b + "円が増え、あなたの所持金は" + (score + b) + "円になりました。");
112
+
113
+ score = score + b;
114
+
115
+ } else if ((a.equals("odd")) && (num % 2 == 1)) {
116
+
117
+ System.out.println("あなたの勝ちです。掛け金" + b + "円が増え、あなたの所持金は" + (score + b) + "円になりました。");
118
+
119
+ score = score + b;
120
+
121
+ } else {
122
+
123
+ System.out.println("あなたの負けです。掛け金" + b + "円が減り、あなたの所持金は" + (score - b) + "円になりました。");
124
+
125
+ score = score - b;
126
+
127
+ }
82
128
 
83
129
  }
84
130
 
@@ -87,6 +133,8 @@
87
133
 
88
134
 
89
135
  }
136
+
137
+ ```
90
138
 
91
139
 
92
140