当前位置: 首页 > news >正文

「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 表达式的基本形式如下:

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

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

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

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

输出示例:

您是成年人。

2.2 多级条件判断

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

2.2.1 多级条件示例
main(): Int64 {let temperature = 10if (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 表达式初始化变量
main(): Int64 {let score = 85let 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
來源:坚果派
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。



http://www.mrgr.cn/news/71855.html

相关文章:

  • 【安全通信】告别信息泄露:搭建你的开源视频聊天系统briefing
  • 【Chapter 3】Machine Learning Classification Case_Prediction of diabetes-XGBoost
  • 浅谈C++之内存管理
  • 明日周刊-第27期
  • MongoDB增删改查,复杂查询案例分析
  • 亮眼!创新发文!双重分解+遗传优化+深度学习!CEEMDAN-Kmeans-VMD-GA-Transformer多元时序预测
  • 大数据 ETL + Flume 数据清洗 — 详细教程及实例(附常见问题及解决方案)
  • 10款视频剪辑工具使用感受与适用场景推荐!!!!
  • kaggle 如何利用API下载数据集
  • Linux驱动开发(5):平台设备驱动
  • Java 网络通信之 Socket 编程全解析
  • 番外篇 | 关于YOLO11算法的改进点总结
  • 【java】如何理解线程安全问题
  • 轻松搭建自己的RAG知识库
  • 论文2—《基于柔顺控制的智能神经导航手术机器人系统设计》文献阅读分析报告
  • 代码训练营 day64|算法优化、带负权值图的最短路径
  • 一维前缀和/差分,二维前缀和/差分
  • 【时时三省】(C语言基础)函数介绍strtok
  • 概率论中的PMF、PDF和CDF
  • 关于CJS,AMD,CMD,UMD的了解
  • 推荐一款强大的行车记录仪播放器:Dashcam Viewer Plus
  • Java小型项目-音乐评论分析
  • 论文解读:CARAT
  • cache(五)Write-through,Write-back,Write-allocate,No-write-allocate
  • 【t365】基于springboot的高校疫情防控系统
  • uniapp路由与页面跳转详解:API调用与Navigator组件实战