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

質問編集履歴

2

分かりにくいですがdoの中身とデバックの結果を追記しました。

2020/10/25 13:07

投稿

Tomo0225
Tomo0225

スコア67

title CHANGED
File without changes
body CHANGED
@@ -1,8 +1,19 @@
1
1
  ```C#
2
2
  do{
3
+ targetplayer = originallist[UnityEngine.Random.Range(0,originallist.Count)];
4
+ debugcount++;
5
+ Debug.Log("targetplayer"+targetplayer.PlayerName+" attacker "+attacker.PlayerName);
6
+ Debug.Log(targetplayer.Team+""+targetplayer.isLive+" "+attacker.Team+attacker.isLive);
7
+ if(debugcount > 50){
8
+ Debug.Log("無限ループ");
3
- ・・・
9
+ break;
10
+ }
4
11
  }while((targetplayer.isLive == false) || (targetplayer.Team == attacker.Team))
5
12
  ```
6
13
 
7
14
  do while文で上記のような条件式を書いたのですが、targetplayer.isLive == trueで且つtargetplayer.Team != attacker.Teamのような条件の時でもwhile文から抜けずループしてしまうことがあります。
8
- 条件式の書き方でおかしいところがあるでしょうか?。
15
+ 条件式の書き方でおかしいところがあるでしょうか?。
16
+
17
+ デバッグで確認したときの画像です。![イメージ説明](2a4d5b2299c0e5351f0b337f226461be.jpeg)
18
+
19
+ 分かりにくいですがdoの中身とデバックの結果を追記しました。

1

カッコの数が間違っていたので編集しました

2020/10/25 13:07

投稿

Tomo0225
Tomo0225

スコア67

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,7 @@
1
1
  ```C#
2
2
  do{
3
3
  ・・・
4
- }while((targetplayer.isLive == false) || (targetplayer.Team == attacker.Team)
4
+ }while((targetplayer.isLive == false) || (targetplayer.Team == attacker.Team))
5
5
  ```
6
6
 
7
7
  do while文で上記のような条件式を書いたのですが、targetplayer.isLive == trueで且つtargetplayer.Team != attacker.Teamのような条件の時でもwhile文から抜けずループしてしまうことがあります。