「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

來源:坚果派

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


相关推荐
林开落L3 分钟前
前缀和算法习题篇(上)
c++·算法·leetcode
远望清一色4 分钟前
基于MATLAB边缘检测博文
开发语言·算法·matlab
tyler_download6 分钟前
手撸 chatgpt 大模型:简述 LLM 的架构,算法和训练流程
算法·chatgpt
SoraLuna26 分钟前
「Mac玩转仓颉内测版7」入门篇7 - Cangjie控制结构(下)
算法·macos·动态规划·cangjie
我狠狠地刷刷刷刷刷29 分钟前
中文分词模拟器
开发语言·python·算法
鸽鸽程序猿29 分钟前
【算法】【优选算法】前缀和(上)
java·算法·前缀和
九圣残炎36 分钟前
【从零开始的LeetCode-算法】2559. 统计范围内的元音字符串数
java·算法·leetcode
YSRM1 小时前
Experimental Analysis of Dedicated GPU in Virtual Framework using vGPU 论文分析
算法·gpu算力·vgpu·pci直通
韭菜盖饭1 小时前
LeetCode每日一题3261---统计满足 K 约束的子字符串数量 II
数据结构·算法·leetcode
geng小球1 小时前
LeetCode 78-子集Ⅱ
java·算法·leetcode