Unity的C#编程教程_36_while循环语句
-
do while 循环
- 首先执行用于循环的程序块
- 再进行条件判断
- 判断为真则再次运行程序块
- 直到判定为假
- 跳出循环
-
比如数数程序:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DoWhile : MonoBehaviour
{
public int num = 0;
// Start is called before the first frame update
void Start()
{
do
{
num++; // 每次数一个
} while (num < 10); // 数到 10 截止,跳出循环
}
// Update is called once per frame
void Update()
{
}
}
- 这里需要注意的是,在程序块里面需要改变一个指示标志,然后在后面对这个指示标志进行条件判断
- 这里的例子中 num 就是指示标志,如果没有 num++,则会无限循环下去
-
While 循环
- 先判断条件是否成立
- 成立再执行循环程序块
- 然后再判断条件是否成立,不成立则跳出循环
-
在协程中,有时会会搭配无限循环的 While 语句,即直接设定条件永远为 true
-
比如在游戏中,我们要隔一段时间就刷行一个地区的野怪,那就可以用携程+无限循环的方式
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SpawnEnemy : MonoBehaviour
{
public int enemyNum;
// Start is called before the first frame update
void Start()
{
StartCoroutine(SpawnEnemyRoutine()); // 启动协程
}
// Update is called once per frame
void Update()
{
}
IEnumerator SpawnEnemyRoutine() // 定义协程
{
while (true)
{
yield return new WaitForSeconds(1.0f); // 等待 1 秒
enemyNum++; // 刷新一个敌人
}
}
}
- 这里注意,协程的作用是等待一段时间
- 所以如果不用协程,直接把无限循环放在主游戏程序中,那程序会崩溃
- 这个时候你一旦启动运行测试游戏,那所有未保存的东西可都要付之东流了
- While 语句的普通使用方式:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DoWhile : MonoBehaviour
{
public int num = 0;
// Start is called before the first frame update
void Start()
{
while (num < 10) // num=10 的时候跳出循环
{
num++; // 每次加1
}
}
// Update is called once per frame
void Update()
{
}
}