「Mac玩转仓颉内测版3」入门篇3 - Cangjie的基本语法与结构

本篇将深入探讨Cangjie语言的基本语法与结构。这些基础知识为编写高效、可维护的代码奠定了坚实基础。通过理解语句结构、表达式、注释及数据类型,能够更自信地使用Cangjie进行编程。

关键词
  • Cangjie基本语法
  • 语句结构
  • 表达式
  • 注释
  • 数据类型
  • 控制结构

一、基本语法
1.1 语句结构

Cangjie的语句结构是代码的基本形式,包括赋值语句、条件语句和循环语句。

  • 赋值语句:用于将值赋给变量。

    let x: Int64 = 10
    println(x)  // 输出变量x的值
    

    输出

    10
    
  • 条件语句:用于控制程序的执行流。

    if (x > 0) {
        println("x是正数")  // 如果x大于0,则输出相应信息
    }
    

    输出

    x是正数
    
  • 循环语句:用于重复执行特定代码块。

    for (i in 1..=5) {
        println(i)  // 输出1到5的所有数字
    }
    

    输出

    1
    2
    3
    4
    5
    
1.2 表达式

Cangjie支持多种表达式,包括算术运算和逻辑运算。

  • 算术运算:如加法、减法等。

    let a: Int64 = 1
    let b: Int64 = 2
    let sum: Int64 = a + b
    println(sum)  // 输出a和b的和
    

    输出

    3
    
  • 逻辑运算:如与、或等。

    if (a > 0 && b < 10) {
        println("a > 0 并且 b < 10")  // 同时满足a大于0和b小于10的条件
    }
    

    输出

    a > 0 并且 b < 10
    

二、变量命名与标识符概述

在Cangjie编程语言中,开发者可以为程序元素命名,这些名称被称为“标识符”。标识符分为普通标识符和原始标识符,遵循不同的命名规则。普通标识符不能与Cangjie关键字相同,并由特定字符序列构成。原始标识符则允许在普通标识符或关键字外加反引号,以便将关键字作为标识符使用。


三、注释

注释用于提高代码的可读性和维护性。在Cangjie中,注释分为两种类型:

3.1 单行注释
  • 使用 // 进行单行注释,可用于解释代码或暂时屏蔽代码行。

    // 输出欢迎信息
    println("Welcome to Cangjie!")
    

    输出

    Welcome to Cangjie!
    
3.2 多行注释
  • 使用 / / 包裹多行注释,适合于较长的说明或屏蔽多行代码。

    /*
     * 计算阶乘的函数
     * 参数:n - 要计算的整数
     * 返回:n的阶乘
     */
    func factorial(n: Int): Int {
        // 函数体
    }
    

四、数据类型

Cangjie支持多种数据类型,包括:

4.1 整数类型
  • Int64:用于表示64位整数。

    let age: Int64 = 25  // 年龄变量
    println(age)
    

    输出

    25
    
4.2 浮点数类型
  • Float64:用于表示双精度浮点数。

    let height: Float64 = 1.75  // 身高变量
    println(height)
    

    输出

    1.750000
    
4.3 字符串类型
  • String:用于表示文本数据。

    let name: String = "Cangjie"  // 姓名变量
    println(name)
    

    输出

    Cangjie
    
4.4 布尔类型
  • Bool:表示真(true)或假(false)的值。

    let isAdult: Bool = true  // 是否成年人
    println(isAdult)
    

    输出

    true
    

五、控制结构

控制结构用于控制程序的执行流程,包括条件判断和循环结构。

5.1 条件判断

使用 ifelse ifelse 进行条件判断。

let age: Int64 = 25
if (age > 18) {
    println("大于18岁")  // 如果年龄大于18,输出信息
} 
else if (age < 18 && age > 0) {
    println("小于18岁")  // 如果年龄在0到18之间,输出信息
} 
else {
    println("输入负数,错误")  // 如果输入负数,输出错误信息
}

输出

大于18岁
5.2 循环结构

for循环while循环用于重复执行代码块。

for (_ in 1..=3) {
    println('*')  // 输出3个星号
}

var i: Int64 = 0
let data: Int64 = 3
while (i < data) {
    println('#')  // 输出3个井号
    i += 1
}

输出

*
*
*
#
#
#

小结

本篇全面介绍了Cangjie语言的基本语法与结构,包括语句结构、表达式、注释、数据类型及控制结构。掌握这些基础知识将为后续的编程学习打下坚实基础,为创建高效、可维护的代码奠定基础。


下篇预告

下一篇将详细介绍Cangjie中的变量命名规则,包括普通标识符和原始标识符的命名规范,以帮助更好地使用标识符,敬请期待!


上一篇:「Mac玩转仓颉内测版2」入门篇2 - 编写第一个Cangjie程序
下一篇:「Mac玩转仓颉内测版4」入门篇4 - Cangjie变量命名规则

作者:SoraLuna
链接:https://www.nutpi.net/thread?topicId=85
來源:坚果派
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/913153.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux:基本开发工具

一&#xff1a;编辑器vim 1.1vim的基本概念 vim其实有多重模式&#xff0c;这里我们主要了解vim的三种模式&#xff0c;分别是命令模式&#xff08;command mode&#xff09;,插入模式(Insert mode)和底行模式(lst line mode) 正常/普通/命令模式(Normal mode) …

第14张 GROUP BY 分组

一、分组功能介绍 使用group by关键字通过某个字段进行分组&#xff0c;对分完组的数据分别 “SELECT 聚合函数”查询结果。 1.1 语法 SELECT column, group_function(column) FROM table [WHERE condition] [GROUP BY group_by_expression] [ORDER BY column]; 明确&#…

TVM计算图分割--BYOC框架

文章目录 BYOC架构算子标注单算子标注复合算子标注Cost-based PartitionCodegenCodegen for C代码生成流程概览代码生成工程实现实现CodegenC实现CSourceCodegenCodegen for JSON实现JsonCodegenRuntimeJSONRuntime参考随着后端设备数量激增,为达到较高的效果在这些设备上,对…

计算机毕业设计Python+卷积神经网络股票预测系统 股票推荐系统 股票可视化 股票数据分析 量化交易系统 股票爬虫 股票K线图 大数据毕业设计 AI

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

qt QShortcut详解

1、概述 QShortcut是Qt框架中的一个类&#xff0c;它提供了一种创建键盘快捷键的方式。通过QShortcut&#xff0c;开发者可以将特定的键盘组合&#xff08;如CtrlC、AltF4等&#xff09;与应用程序中的动作&#xff08;如复制、关闭窗口等&#xff09;关联起来。当用户在应用程…

C++OJ_二叉树的层序遍历

✨✨ 欢迎大家来到小伞的大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;C_OJ 小伞的主页&#xff1a;xiaosan_blog 二叉树的层序遍历 102. 二叉树的层序遍历 - 力扣&#xff08;LeetCode&#xff0…

The Rank-then-Encipher Approach

原始观点 Format-Preserving Encryption 4 The Rank-then-Encipher Approach 引用1 Hybrid diffusion-based visual image encryption for secure cloud storage 2.2 Sum-preserving encryption Bellare introduced the concept of format-preserving encryption (FPE)…

DolphinDB 与南方科技大学联合授课啦!

11月1日&#xff0c;南方科技大学商学院和 DolphinDB 联合举办了高校课程讲座。讲座由南方科技大学商学院高级研究学者冯鹏举主持&#xff0c;DolphinDB 创始人兼 CEO 周小华博士、某百亿私募数据平台架构师潜蛟老师进行精彩演讲。 Part 1 : 大数据时代下数据库架构革新与生态…

IDM扩展添加到Edge浏览器

IDM扩展添加到Edge浏览器 一般情况下&#xff0c;当安装IDM软件后&#xff0c;该软件将会自动将IDM Integration Module浏览器扩展安装到Edge浏览器上&#xff0c;但在某些情况下&#xff0c;需要我们手动安装&#xff0c;以下为手动安装步骤 手动安装IDM扩展到Edge浏览器 打…

403 Request Entity Too Lager(请求体太大啦)

昨天收到 QA 的生产报障&#xff0c;说是测试环境的附件上传功能报了 403 的错误&#xff0c;错误信息&#xff1a;403 Request Entity Too Lager。我尝试复现问题&#xff0c;发现传个几兆的文件都费劲啊&#xff0c;一传一个失败。不用说&#xff0c;项目用到 ng 代理&#x…

HARCT 2025 新增分论坛2:机器人系统智能控制

会议名称&#xff1a;机电液一体化与先进机器人控制技术国际会议 会议简称&#xff1a;HARCT 2025 大会时间&#xff1a;2025年1月3日-6日 大会地点&#xff1a;中国桂林 主办单位&#xff1a;桂林航天工业学院、广西大学、桂林电子科技大学、桂林理工大学 协办单位&#…

网络世界中的侦察兵----ICMP

前言 学习了IP协议后&#xff0c;都知道IP协议本身是不提供可靠性保障的&#xff0c;那么数据包在这么复杂的互联网环境中传输&#xff0c;总会遇到问题&#xff0c;如果遇到问题后&#xff0c;被丢弃、无回应&#xff0c;可能作为工程师的我们来说都不知道发生了什么事&#…

从0开始学习机器学习--Day21--算法的评估标准

准确率和召回率(precision and recall) 在上一章我们提到了在每次运行算法时通过返回一个实数值来判断算法的好坏&#xff0c;但是我们该如何构建这个实数的计算公式呢&#xff0c;毕竟这关乎于我们对算法的判断&#xff0c;不能过于夸大或贬低。有一个典型的会被影响的很大例…

集群架构中Lua脚本的限制以及出现的报错

&#x1f680; 博主介绍&#xff1a;大家好&#xff0c;我是无休居士&#xff01;一枚任职于一线Top3互联网大厂的Java开发工程师&#xff01; &#x1f680; &#x1f31f; 在这里&#xff0c;你将找到通往Java技术大门的钥匙。作为一个爱敲代码技术人&#xff0c;我不仅热衷…

快速傅里叶变换(FFT)基础(附python实现)

对于非专业人士&#xff0c;傅里叶变换一直是一个神秘的武器&#xff0c;它可以分析出不同频域的信息&#xff0c;从时域转换到频域&#xff0c;揭示了信号的频率成分&#xff0c;对于数字信号处理&#xff08;DSP&#xff09;、图像、语音等数据来说&#xff0c;傅里叶变换是最…

python数据结构操作与可视化的应用

Python具有丰富的数据结构操作和可视化库&#xff0c;可以进行各种数据结构的创建、编辑和分析&#xff0c;并将结果可视化。以下是几个常见的Python数据结构操作和可视化的应用示例&#xff1a; 1. 列表&#xff08;List&#xff09;操作和可视化&#xff1a; - 创建列表&a…

DataFrame

目录 一、创建DataFrame二、Sql语法三、DSL语法四、RDD与DataFrame互相转换 一、创建DataFrame 在SparkSql中SparkSession是创建DataFrame和执行Sql的入口&#xff0c;创建DataFrame有三种方式&#xff1a; 通过Spark的数据源进行创建 从一个存在的RDD进行转换 从Hive Tabl…

C# 实现对指定句柄的窗口进行键盘输入的实现

在C#中实现对指定句柄的窗口进行键盘操作&#xff0c;可以通过多种方式来实现。以下是一篇详细的指南&#xff0c;介绍如何在C#中实现这一功能。 1. 使用Windows API函数 在C#中&#xff0c;我们可以通过P/Invoke调用Windows API来实现对指定窗口的键盘操作。以下是一些关键的…

GitHub个人主页美化

效果展示 展示为静态效果&#xff0c;动态效果请查看我的GitHub页面 创建GitHub仓库 创建与GitHub用户名相同的仓库&#xff0c;当仓库名与用户名相同时&#xff0c;此仓库会被视作特殊仓库&#xff0c;其README.md&#xff08;自述文件&#xff09;会展示在GitHub个人主页…

2024-09-01 - 分布式集群网关 - LoadBalancer - 阿里篇 - 流雨声

摘要 通过公有云部署创建类似 MateLB 的应用负载&#xff0c;可以更加方便的对系统资源进行合理规划。 应用实践 CCM提供Kubernetes与阿里云基础产品&#xff08;例如CLB、VPC等&#xff09;对接的能力&#xff0c;支持在同一个CLB后端挂载集群内节点和集群外服务器&#xf…