「Mac玩转仓颉内测版5」入门篇5 - Cangjie控制结构(上)

本篇探讨Cangjie编程语言中的控制结构,主要包括条件表达式。控制结构是管理程序执行流程的核心部分,能够帮助编写复杂且灵活的逻辑程序。

关键词
  • Cangjie编程
  • 控制结构
  • 条件表达式
  • 分支结构
  • if表达式
  • 多级条件判断

一、控制结构概述

控制结构用于管理程序的执行流程。在Cangjie中,控制结构包括条件表达式(如 if )和循环表达式(如 for-inwhiledo-while)。这些结构允许根据不同条件执行代码块或重复执行操作。

1.1 表达式的定义

在Cangjie中,凡是可求值的语言元素都视为表达式,包括条件表达式、循环表达式和 try 表达式等。Cangjie为强类型语言,所有表达式不仅可求值,还有明确的类型。

1.1.1 Cangjie中的表达式

Cangjie表达式简化了传统编程语言中的定义,所有可计算的元素皆为表达式。这包括条件判断、循环操作等,表达式结果具有固定类型。


二、条件表达式

条件表达式用于根据某个条件决定执行哪段代码。在Cangjie中,主要使用 if 表达式。

2.1 if 表达式

if 表达式的基本形式如下:

cangjie 复制代码
if (条件) {
    分支1
} else {
    分支2
}
2.1.1 if 表达式的执行规则
  • 计算条件表达式:
    • 值为 true 时,执行分支1;
    • 值为 false 时,执行分支2。
  • 继续执行 if 表达式后的代码。

else 分支可以省略,仅在条件成立时执行代码。

示例:根据年龄判断是否成年人

cangjie 复制代码
main(): Int64 {
    let age: Int = 20
    if (age >= 18) {
        println("您是成年人。")
    }
    else {
        println("您是未成年人。")
    }
    
    return 0
}

输出示例:

复制代码
您是成年人。

2.2 多级条件判断

通过 else if 可以执行多级条件判断,处理更复杂的分支逻辑。

2.2.1 多级条件示例
cangjie 复制代码
main(): Int64 {
    let temperature = 10
    if (temperature > 30) {
        println("天气炎热")
    }
    else if (temperature > 20) {
        println("天气温暖")
    }
    else if (temperature > 10) {
        println("天气凉爽")
    }
    else {
        println("天气寒冷")
    }
    
    return 0
}

输出示例:

复制代码
天气寒冷

2.3 if 表达式的值与类型

if 表达式用于变量初始化时,其值和类型由分支的返回值决定。如果没有 else 分支,if 表达式的类型为 Unit,值为 ()。

2.3.1 使用 if 表达式初始化变量
cangjie 复制代码
main(): Int64 {
    let score = 85
    let grade = if (score >= 90) {
        "A"
    } else if (score >= 80) {
        "B"
    }
    else {
        "C"
    }
    println("您的成绩等级是:${grade}")
    
    return 0
}

输出示例:

复制代码
您的成绩等级是:B

小结

本篇介绍了Cangjie中的控制结构,重点阐述了条件表达式的用法。通过多个示例展示了如何使用 if 表达式控制程序的执行流程。


下篇预告

下一篇将探讨Cangjie中的 whiledo-while 表达式的使用及其实际应用,帮助读者进一步掌握控制结构的灵活应用。


上一篇: 「Mac玩转仓颉内测版4」入门篇4 - Cangjie变量命名规则
下一篇:「Mac玩转仓颉内测版6」入门篇6 - Cangjie控制结构(中)

作者:SoraLuna

链接:https://www.nutpi.net/thread?topicId=107

來源:坚果派

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


相关推荐
weixin_3077791329 分钟前
VS Code配置MinGW64编译SQLite3库
开发语言·数据库·c++·vscode·算法
无聊的小坏坏41 分钟前
拓扑排序详解:从力扣 207 题看有向图环检测
算法·leetcode·图论·拓扑学
wwww.bo1 小时前
机器学习(决策树)
算法·决策树·机器学习
辞--忧1 小时前
深入浅出决策树
算法·决策树·机器学习
Y200309161 小时前
决策树总结
算法·决策树·机器学习
lynn8570_blog1 小时前
低端设备加载webp ANR
前端·算法
图灵学术计算机论文辅导2 小时前
论文推荐|迁移学习+多模态特征融合
论文阅读·人工智能·深度学习·计算机网络·算法·计算机视觉·目标跟踪
threejs源码翻译官2 小时前
显微镜图像处理【优化】- 使用图像风格迁移技术放大图像细节
算法
强德亨上校3 小时前
贪心算法(Greedy Algorithm)详解
算法·贪心算法
浮灯Foden4 小时前
算法-每日一题(DAY13)两数之和
开发语言·数据结构·c++·算法·leetcode·面试·散列表