LogoArcartX Doc
Shimmer语法教学进阶篇

流程控制

学习Shimmer中的流程控制语句

我们走得太快,是该停下来等等自己的灵魂了

流程控制语句让程序可以根据不同条件执行不同的代码,实现灵活的逻辑控制

条件控制

🔀

if 条件判断

// 基本if语句
if(分数 >= 60){
    Shimmer.println("及格了")
}
 
// if-else语句
if(天气 == "下雨"){
    Shimmer.println("记得带伞")
} else {
    Shimmer.println("天气不错")
}
 
// if-elif-else多条件判断
if(分数 >= 90){
    Shimmer.println("优秀")
} elif(分数 >= 80){
    Shimmer.println("良好")
} elif(分数 >= 60){
    Shimmer.println("及格")
} else {
    Shimmer.println("需要努力")
}
  • 条件判断允许有多个elif块 但是只能有一个else
🔄

switch 分支选择

等级 = "A"
 
switch(等级){
    case "A" {
        Shimmer.println("优秀")
        // 如果不加break,会继续执行下面的代码
    }
    case "B" {
        Shimmer.println("良好")
        break  // 终止switch执行
    }
    case "C" {
        Shimmer.println("及格")
        // 这里如果没有break或者return,仍然会被执行
    }
    else {
        Shimmer.println("其他情况")
    }
}
  • 和if语句类似 switch语句可以有多个case块 但是只能有一个else

循环控制

🔁

for..in 循环

// 计次循环
for(i in range(1,5)){
    Shimmer.println("第{i}次循环")
}
 
// 列表遍历
var.水果 = ["苹果", "香蕉", "橙子"]
for(水果名 in var.水果){
    Shimmer.println(水果名)
}
 
// 字典遍历
var.成绩 = {"语文": 85, "数学": 92}
for(科目, 分数 in var.成绩){
    Shimmer.println("{科目}: {分数}分")
}
♾️

while 循环

var.计数 = 0
 
while(var.计数 < 5){
    Shimmer.println("当前计数: {var.计数}")
    var.计数++
}
 
// 无限循环
while(true){
    // 需要手动break退出
    if(条件满足){
        break
    }
}
  • while循环只要条件表达式返回为true便会一直循环,直到执行break/return或是条件不再满足才会停止
  • 值得注意的是,循环不结束,代码是不会继续向下运行的,使用时候应该自行编排。

循环控制语句

// break: 跳出循环
for(i in range(1,10)){
    if(i == 5){
        break  // 到5就结束循环
    }
    Shimmer.println(i)
}
 
// next: 跳过本次循环
for(i in range(1,5)){
    if(i == 3){
        next  // 跳过3 进行下次一次循环 而不结束循环
    }
    Shimmer.println(i)
}
⏱️

async 异步执行

// 异步执行代码块
async {
    Shimmer.println("这段代码会异步执行")
    // 适用于耗时操作
}
 
// 主线程代码继续执行
Shimmer.println("这里不会等待异步代码完成")

实际应用示例

🎮

游戏菜单系统

var.选项 = "开始游戏"
 
switch(var.选项){
    case "开始游戏" {
        var.开始新游戏()
        break
    }
    case "继续游戏" {
        var.读取存档()
        break
    }
    case "设置" {
        var.打开设置()
        break
    }
    else {
        var.返回主菜单()
    }
}
📊

成绩统计系统

var.成绩列表 = [85, 92, 78, 95, 88]
var.及格人数 = 0
var.总分 = 0
 
for(分数 in var.成绩列表){
    if(分数 >= 60){
        var.及格人数++
    }
    var.总分 += 分数
}
 
var.平均分 = var.总分 / var.成绩列表.length
Shimmer.println("及格人数: {var.及格人数}")
Shimmer.println("平均分: {var.平均分}")

练习题

🎲

练习1:猜数字游戏

编写一个猜数字游戏:

  • 生成一个1-100的随机数参阅工具集函数表
  • 玩家有多次机会猜测
  • 根据猜测结果提示"大了"或"小了"
  • 猜对时显示尝试次数
🛒

练习2:购物车系统

实现简单的购物车功能:

  • 可以添加商品和数量
  • 计算总价
  • 应用不同折扣规则
  • 输出购物清单

流程控制是编程的核心概念之一。通过组合使用不同的控制结构,我们可以实现复杂的程序逻辑。建议多加练习,熟练掌握各种控制语句的使用。

On this page