Godot学习笔记5——if和while

一、if

使用if可以在函数中设置情况分支,起到控制数据处理流程的作用。

在Godot中,语法为

if(条件):

代码块

例如:

在这里,我们定义了两个变量,并在节点加载完成后判断两变量相加是否等于0.4,运行后可以看到,程序输出了"yes"。Godot与大多数编程语言一样,赋值为一个等于号,等于为两个等于号。

我们修改一下两个变量的数字,再次运行,发现结果并不如我们期待的那样:

可以看到,运行后,"yes"并没有被输出。这是由于计算器存储小数时会有一定误差导致的。为了避免这种情况,我们可以使用"is_equal_approx()"函数,在里面添加两个参数:

此时可以看到,结果如我们所愿。同样的,按住control键单击函数,即可跳转到对应的文档中:

需要特殊注意的是,在Godot中,字符串虽然不能转换为布尔型数据,但可以放入if中进行判断,规则是非空即为真:

可以看到,只有"yes"被打印了出来。字符串也可以进行等于号的判断,在此不再赘述。

同时,我们还有elif与else对if语句进行补充。一个if可以有多个elif对其进行补充,却只能有一个else。elif就相当于是else if 的合体,当if条件不满足时会去判断elif的内容,都不满足则执行else。

可以看到,这里只打印了"a>1"的内容。

最后,if else里的变量也是有各自的作用域的,作用域内定义的变量互相独立。

这里,不同作用域内的变量使用就会报错。

二、while

while与if写法一致,但没有elif与else。当while的内部代码执行完毕后,程序会再次判断while是否成立,若成立则会继续执行while的内容。

注意:

  1. 避免死循环,要设置破坏循环条件的代码
  2. while变量也是有作用域的,与if同

如果我们写一个死循环,就会出现如下情况:

可以看到,游戏窗口未打开,且处于未响应状态。

执行以上代码可以看到,while里面的内容被执行了两次。"a+=1"等价于"a=a+1"。

我们也可以用break主动跳出循环:

我们也可以使用continue,主动略过一次循环:

可以看到,这里只打印了1和3,而将2略过了。

相关推荐
今天也好累14 小时前
C语言安全格式化:snprintf核心指南
c语言·笔记·学习·visual studio
崇山峻岭之间15 小时前
Matlab学习记录18
开发语言·学习·matlab
老王熬夜敲代码16 小时前
C++万能类:any
开发语言·c++·笔记
简简单单OnlineZuozuo16 小时前
提示架构:设计可靠、确定性的AI系统
人工智能·unity·架构·游戏引擎·基准测试·the stanford ai·儿童
智者知已应修善业16 小时前
【数组删除重复数据灵活算法可修改保留重复数量】2024-3-4
c语言·c++·经验分享·笔记·算法
羊群智妍17 小时前
领跑2026 GEO赛道:SHEEP-GEO登顶十大检测平台,解锁品牌AI可见性最优解
笔记·百度·微信·facebook·新浪微博
QT 小鲜肉17 小时前
【Linux命令大全】002.文件传输之uupick命令(实操篇)
linux·运维·服务器·chrome·笔记
QT 小鲜肉17 小时前
【Linux命令大全】003.文档编辑之colrm命令(实操篇)
linux·运维·服务器·chrome·笔记
自不量力的A同学18 小时前
Doris Catalog
笔记
QT 小鲜肉18 小时前
【Linux命令大全】002.文件传输之uucico命令(实操篇)
linux·运维·服务器·chrome·笔记·github