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

回答編集履歴

3

while文を三回勝敗の条件に合わせた

2016/10/09 10:01

投稿

LLman
LLman

スコア5592

answer CHANGED
@@ -1,5 +1,5 @@
1
1
  ```java
2
- while(w<2 && l<2){
2
+ while(w<3 && l<3){
3
3
  ```
4
4
 
5
5
  結論から言うと、上のように**whileの条件を逆**にしてください。

2

「||」→「&&」に変更

2016/10/09 10:01

投稿

LLman
LLman

スコア5592

answer CHANGED
@@ -1,5 +1,5 @@
1
1
  ```java
2
- while(w<2 || l<2){
2
+ while(w<2 && l<2){
3
3
  ```
4
4
 
5
5
  結論から言うと、上のように**whileの条件を逆**にしてください。

1

インデントをそろえたサンプルコードを掲載

2016/10/09 09:59

投稿

LLman
LLman

スコア5592

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
+ ```