回答編集履歴
3
while文を三回勝敗の条件に合わせた
answer
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
```java
|
2
|
-
while(w<
|
2
|
+
while(w<3 && l<3){
|
3
3
|
```
|
4
4
|
|
5
5
|
結論から言うと、上のように**whileの条件を逆**にしてください。
|
2
「||」→「&&」に変更
answer
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
```java
|
2
|
-
while(w<2
|
2
|
+
while(w<2 && l<2){
|
3
3
|
```
|
4
4
|
|
5
5
|
結論から言うと、上のように**whileの条件を逆**にしてください。
|
1
インデントをそろえたサンプルコードを掲載
answer
CHANGED
@@ -14,4 +14,50 @@
|
|
14
14
|
なぜなら、このインデントは、**制御文の構造を分かりやすく**してくれるからです。
|
15
15
|
|
16
16
|
また、変数名を「win」「lose」にするとか、**変数名は普通の単語に**した方が、
|
17
|
-
**意味を確認しながら読み下し**やすいので、間違いに気づきやすくなります。
|
17
|
+
**意味を確認しながら読み下し**やすいので、間違いに気づきやすくなります。
|
18
|
+
|
19
|
+
具体的には、下記がインデントをそろえた一例です。制御文で下がっていますね。
|
20
|
+
|
21
|
+
```java
|
22
|
+
import java.util.*;
|
23
|
+
|
24
|
+
class Ideone
|
25
|
+
{
|
26
|
+
|
27
|
+
public static void main(String[] args) {
|
28
|
+
|
29
|
+
Scanner stdIn = new Scanner(System.in);
|
30
|
+
Random rand = new Random();
|
31
|
+
|
32
|
+
int w=0;
|
33
|
+
int l=0;
|
34
|
+
|
35
|
+
while(w<2 || l<2){
|
36
|
+
System.out.print("手(0:グー/ 1: チョキ/ 2:パー) ? ");
|
37
|
+
|
38
|
+
int h = stdIn.nextInt();
|
39
|
+
int c = rand.nextInt(3);
|
40
|
+
int j = (c-h+3)%3;
|
41
|
+
|
42
|
+
print("人",h);
|
43
|
+
print("こんぴゅーた",c);
|
44
|
+
|
45
|
+
switch(j) {
|
46
|
+
case 0: System.out.println("あいこ"); break;
|
47
|
+
case 1: System.out.println("人の勝ち"); w++; break;
|
48
|
+
case 2: System.out.println("コンピュータの勝ち"); l++; break;
|
49
|
+
}
|
50
|
+
}
|
51
|
+
System.out.println("あなたの勝ち数は"+w);
|
52
|
+
}
|
53
|
+
|
54
|
+
public static void print(String s, int x) {
|
55
|
+
|
56
|
+
switch(x) {
|
57
|
+
case 0: System.out.println(s+"グー"); break;
|
58
|
+
case 1: System.out.println(s+"チョキ"); break;
|
59
|
+
case 2: System.out.println(s+"パー"); break;
|
60
|
+
}
|
61
|
+
}
|
62
|
+
}
|
63
|
+
```
|