【Unity 3D】C#控制语句break、continue及算数运算符和逻辑运算符的讲解(附测试代码)

简介: 【Unity 3D】C#控制语句break、continue及算数运算符和逻辑运算符的讲解(附测试代码)

控制语句

break语句

1:当break语句出现在一个循环内时,循环会立即终止,且程序流将继续执行下一条语句,它可用于终于switch语句中的一个条case语句

2:如果使用的是嵌套循环,break语句会停止执行最内层的循环 然后开始执行该代码块后的下一行代码

测试代码如下

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test_8_9 : MonoBehaviour
{
    void Start()
    {
        /* 局部变量定义 */
        int a = 10;
        /* while 循环执行 */
        while (a < 20)
        {
            Debug.Log("a 的值: :" + a);
            a++;
            if (a > 15)
            {
                /* 使用 break 语句终止 loop */
                break;
            }
        }
    }
}

continue语句

它不会强迫终止,continue语句会跳过当前循环中的代码,强迫开始下一次循环,对于for循环,continue语句会导致程序执行条件测试和循环增量部分,对于while和do while continue会导致程序控制回到条件测试上

测试代码如下

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test_8_10 : MonoBehaviour
{
    void Start()
    {
        /* 局部变量定义 */
        int a = 10;
        /* do 循环执行 */
        do
        {
            if (a == 12)
            {
                /* 跳过迭代 */
                a = a + 1;
                continue;
            }
            Debug.Log("a 的值: :" + a);
            a++;
        } while (a < 15);
    }
}

运算符

算术运算符

++ 自增运算 值增加1

-- 自减运算 值减少1

其他算术符都很常见 不在讲解

测试代码如下

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test_8_11 : MonoBehaviour
{
    void Start()
    {
        int a = 21;
        int b = 10;
        int c;
        c = a + b;
        Debug.Log("行1  c的值是 " + c);
        c = a - b;
        Debug.Log("行2  c的值是 " + c);
        c = a * b;
        Debug.Log("行3  c的值是 " + c);
        c = a / b;
        Debug.Log("行4  c的值是 " + c);
        c = a % b;
        Debug.Log("行5  c的值是 " + c);
        // ++a 先进行自增运算再赋值
        c = ++a;
        Debug.Log("行6  c的值是 " + c);
        // 此时 a 的值为 22
        // --a 先进行自减运算再赋值
        c = --a;
        Debug.Log("行7  c的值是 " + c);
    }
}

关系运算符

== 判断两个操作数的值是否相等

!=判断两个操作数的值是否不相等

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test_8_12 : MonoBehaviour
{
    void Start()
    {
        int a = 21;
        int b = 10;
        if (a == b)
        {
            Debug.Log("行1  a等于 b");
        }
        else
        {
            Debug.Log("行1  a不等于 b");
        }
        if (a < b)
        {
            Debug.Log("行2  a小于 b");
        }
        else
        {
            Debug.Log("行2  a不小于 b");
        }
        if (a > b)
        {
            Debug.Log("行3  a大于 b");
        }
        else
        {
            Debug.Log("行3  a不大于 b");
        }
        /* 改变 a 和 b 的值 */
        a = 5;
        b = 20;
        if (a <= b)
        {
            Debug.Log("行4  a小于或等于 b");
        }
        if (b >= a)
        {
            Debug.Log("行5  b大于或等于 a");
        }
    }
}

逻辑运算符

&& 逻辑与运算

|| 逻辑或运算

! 逻辑非运算

测试代码如下

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test_8_13 : MonoBehaviour
{
    void Start()
    {
        bool a = true;
        bool b = true;
        if (a && b)
        {
            Debug.Log("行1 - 条件为真");
        }
        if (a || b)
        {
            Debug.Log("行2 - 条件为真");
        }
        /* 改变 a 和 b 的值 */
        a = false;
        b = true;
        if (a && b)
        {
            Debug.Log("行3 - 条件为真");
        }
        else
        {
            Debug.Log("行3 - 条件不为真");
        }
        if (!(a && b))
        {
            Debug.Log("行4 - 条件为真");
        }
    }
}

赋值运算符

比较简单 此处不再赘述 测试代码如下 注释写的很清楚了

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test_8_14 : MonoBehaviour
{
    void Start()
    {
        int A = 10;
        int B;
        B = A;
        Debug.Log("行1  =  B的值 = " + B);
        B = 20;
        B += A;//B=B+A;
        Debug.Log("行2  += B的值 = " + B);
        B = 20;
        B -= A;//B=B-A;
        Debug.Log("行3  -=  B的值 = " + B);
        B = 20;
        B *= A;//B=B*A;
        Debug.Log("行4  *=  B的值 = " + B);
        B = 20;
        B /= A;//B=B/A;
        Debug.Log("行5  /=  B的值 = " + B);
        B = 20;
        B %= A;//B=B%A;
        Debug.Log("行6  %=  B的值 = " + B);
        B = 20;
        B <<= 2;//B=B<<2;
        Debug.Log("行7  <<=  B的值 = " + B);
        B = 20;
        B >>= 2;//B=B>>2;
        Debug.Log("行8  >>=  B的值 = " + B);
    }
}

创作不易 觉得有帮助请点赞关注收藏~~~

目录
打赏
0
1
1
0
142
分享
相关文章
Potpie.ai:比Copilot更狠!这个AI直接接管项目代码,自动Debug+测试+开发全搞定
Potpie.ai 是一个基于 AI 技术的开源平台,能够为代码库创建定制化的工程代理,自动化代码分析、测试和开发任务。
150 19
Potpie.ai:比Copilot更狠!这个AI直接接管项目代码,自动Debug+测试+开发全搞定
unity UGUI跟随3D物体的坐标转换
在 Unity 中实现 UGUI 元素跟随 3D 物体,关键是将 3D 物体的世界坐标转换为屏幕或画布坐标。通过 Camera.WorldToScreenPoint 方法,可将 3D 物体位置映射到屏幕上,再更新 UGUI 元素的位置。代码示例展示了如何使用该方法,使 UGUI 图像跟随 3D 模型,并提供文字显示、图像和线条的显示/隐藏功能。
Unity 获取鼠标位置下的UGUI或3D物体
本文总结了两种检测方法,分别用于UGUI和3D物体的检测。第一种方法`GetOverUIobj`专门用于检测鼠标悬停的UGUI元素,通过`GraphicRaycaster`实现。第二种方法`GetOverWordGameObject`则同时适用于UI和3D物体检测,利用`PhysicsRaycaster`进行射线检测。两者均返回悬停对象或null。
使用ChatGPT生成登录产品代码的测试用例和测试脚本
使用ChatGPT生成登录产品代码的测试用例和测试脚本
91 35
使用ChatGPT生成关于登录产品代码的单元测试代码
使用ChatGPT生成关于登录产品代码的单元测试代码
45 16
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
70 13
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
103 1
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
这篇文章详细介绍了C3D架构在行为检测领域的应用,包括训练和测试步骤,使用UCF101数据集进行演示。
150 1
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
提升软件质量的关键路径:高效测试策略与实践在软件开发的宇宙中,每一行代码都如同星辰般璀璨,而将这些星辰编织成星系的过程,则依赖于严谨而高效的测试策略。本文将引领读者探索软件测试的奥秘,揭示如何通过精心设计的测试方案,不仅提升软件的性能与稳定性,还能加速产品上市的步伐,最终实现质量与效率的双重飞跃。
在软件工程的浩瀚星海中,测试不仅是发现缺陷的放大镜,更是保障软件质量的坚固防线。本文旨在探讨一种高效且创新的软件测试策略框架,它融合了传统方法的精髓与现代技术的突破,旨在为软件开发团队提供一套系统化、可执行性强的测试指引。我们将从测试规划的起点出发,沿着测试设计、执行、反馈再到持续优化的轨迹,逐步展开论述。每一步都强调实用性与前瞻性相结合,确保测试活动能够紧跟软件开发的步伐,及时适应变化,有效应对各种挑战。
C#程序如何编译成Native代码
【10月更文挑战第15天】在C#中,可以通过.NET Native和第三方工具(如Ngen.exe)将程序编译成Native代码,以提升性能和启动速度。.NET Native适用于UWP应用,而Ngen.exe则通过预编译托管程序集为本地机器代码来加速启动。不过,这些方法也可能增加编译时间和部署复杂度。
315 2

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等