「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
來源:坚果派
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入了解区块链:Web3的基础架构与发展

在数字时代的浪潮中&#xff0c;区块链技术正逐渐成为Web3的重要基础&#xff0c;重新定义互联网的结构和用户体验。Web3不仅是一个全新的网络阶段&#xff0c;更代表了一种去中心化的理念&#xff0c;强调用户主权和数据隐私。本文将深入探讨区块链在Web3中的基础架构、技术特…

华为大变革?仓颉编程语言会代替ArkTS吗?

在华为鸿蒙生态系统中&#xff0c;编程语言的选择一直是开发者关注的焦点。近期&#xff0c;华为推出了自研的通用编程语言——仓颉编程语言&#xff0c;这引发了关于仓颉是否会取代ArkTS的讨论。本文将从多个角度分析这两种语言的特点、应用场景及未来趋势&#xff0c;探讨仓颉…

【C++笔记】C++三大特性之继承

【C笔记】C三大特性之继承 &#x1f525;个人主页&#xff1a;大白的编程日记 &#x1f525;专栏&#xff1a;C笔记 文章目录 【C笔记】C三大特性之继承前言一.继承的概念及定义1.1 继承的概念1.2继承的定义1.3继承基类成员访问方式的变化1.4继承类模板 二.基类和派生类间的转…

Windows搭建流媒体服务并使用ffmpeg推流播放rtsp和rtmp流

文章目录 搭建流媒体服务方式一安装mediamtx启动meidamtx关闭meidamtx 方式二安装ZLMediaKit启动ZLMediaKit关闭ZLMediaKit 安装FFmpeg进行推流使用FFmpeg进行rtmp推流使用VLC播放rtmp流停止FFmpeg的rtmp推流使用FFmpeg进行rtsp推流使用VLC播放rtmp流停止FFmpeg的rtsp推流 本文…

Polybase要求安装orcale jre 7

在安装SQL SERVER时&#xff0c;遇到以下情况&#xff1a;polybase要求安装orcale jre 7更新 51或更高版本 不想安装JDK7。可通过不安装polybase的功能来实现下一步的安装。 1. 点击上一步&#xff0c;回到功能选择的设置界面中。 2. 然后在功能选择窗口中&#xff0c;取消勾选…

深入理解计算机系统 3.7 缓冲区溢出

3.7.1 数据对齐 许多计算机系统对基本数据类型的合法地址做出了一些限制&#xff0c;要求某种类型对象的地址必须是某个值K(通常是2、4或8)的倍数。这种对齐限制简化了形成处理器和内存系统之间接口的硬件设计。例如&#xff0c;假设一个处理器总是从内存中取8个字节&#xff…

代码随想录刷题记录(二十七)——55. 右旋字符串

&#xff08;一&#xff09;问题描述 55. 右旋字符串&#xff08;第八期模拟笔试&#xff09;https://kamacoder.com/problempage.php?pid1065字符串的右旋转操作是把字符串尾部的若干个字符转移到字符串的前面。给定一个字符串 s 和一个正整数 k&#xff0c;请编写一个函数&…

QT打包应用程序文件步骤

QT应用程序&#xff08;.exe&#xff09;打包复制到其他电脑 在QT程序在自己电脑编译好了后&#xff0c;需要打包给其他人。这里介绍一下详细步骤&#xff1a; 确定编译器 搜了很多相关的打包教程&#xff0c;但是还是会出现“应用程序无法正常启动(0xc000007b)”这类错误。经过…

我谈维纳(Wiener)复原滤波器

Rafael Gonzalez的《数字图像处理》中&#xff0c;图像复原这章内容几乎全错。上篇谈了图像去噪&#xff0c;这篇谈图像复原。 图像复原也称为盲解卷积&#xff0c;不处理点扩散函数&#xff08;光学传递函数&#xff09;的都不是图像复原。几何校正不属于图像复原&#xff0c…

10款音频剪辑推荐!!你的剪辑好帮手!!

在如今的数据化浪潮中&#xff0c;工作已经采用了线上线下相结合。我的工作就需要借助一些剪辑工具&#xff0c;来实现我对音频工具的剪辑。我初次接触到音频剪辑也是因为工作需求&#xff0c;从起初我只是一个音频剪辑的小白&#xff0c;这些工具的协助。吸引着我。对于这些工…

Rocky、Almalinux、CentOS、Ubuntu和Debian系统初始化脚本v9版

Rocky、Almalinux、CentOS、Ubuntu和Debian系统初始化脚本 Shell脚本源码地址&#xff1a; Gitee&#xff1a;https://gitee.com/raymond9/shell Github&#xff1a;https://github.com/raymond999999/shell脚本可以去上面的Gitee或Github代码仓库拉取。 支持的功能和系统&am…

Scrapy搭配Selenium爬取豆瓣电影250排行榜动态网页数据

参考CSDN博客&#xff1a;https://blog.csdn.net/qq_43213783/article/details/113063557 2024年11月11日实现。 创建movie_douban爬虫项目&#xff1a; scrapy startproject movie_douban 进入spiders&#xff1a; cd movie_douban/movie_douban/spiders 创建doubanMovieSpi…

想定制RK3566/3568安卓11开机logo吗?触觉智能Purple Pi OH来教你

本文介绍瑞芯微RK3566/RK3568主板/开发板安卓Android11系统替换开机Logo的方法&#xff0c;使用触觉智能Purple Pi OH鸿蒙开发板演示&#xff0c;搭载了瑞芯微RK3566芯片&#xff0c;4核1.8Ghz1T算力NPU&#xff1b;类树莓派设计&#xff0c;Laval社区主荐&#xff0c;已适配全…

【AliCloud】ack + ack-secret-manager + kms 敏感数据安全存储

介绍 ack-secret-manager支持以Kubernetes Secret实例的形式向集群导入或同步KMS凭据信息&#xff0c;确保您集群内的应用能够安全地访问敏感信息。通过该组件&#xff0c;您可以实现密钥数据的自动更新&#xff0c;使应用负载通过文件系统挂载指定Secret实例来使用凭据信息&a…

网页设计平台:6个技术亮点

想要创建个人或商业网站来分享知识或推广商品吗&#xff1f;这篇文章将为你介绍6个免费的网页制作平台&#xff0c;帮助你即使没有编程基础也能快速、轻松地搭建出专业且引人注目的网站。让我们一起探索这些平台&#xff0c;发现它们的特色和优势。 即时设计 即时设计是一个云…

构造,CF 2029D - Cool Graph

目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 D - Cool Graph 二、解题报告 1、思路分析 我们对每条 <u, v>&…

uniapp—android原生插件开发(1环境准备)

本篇文章从实战角度出发&#xff0c;将UniApp集成新大陆PDA设备RFID的全过程分为四部曲&#xff0c;涵盖环境搭建、插件开发、AAR打包、项目引入和功能调试。通过这份教程&#xff0c;轻松应对安卓原生插件开发与打包需求&#xff01; 项目背景&#xff1a; UniApp集成新大陆P…

第2章2.3立项【硬件产品立项的核心内容】

硬件产品立项的核心内容 2.3 硬件产品立项的核心内容2.3.1 第一步&#xff1a;市场趋势判断2.3.2 第二步&#xff1a;竞争对手分析1.竞争对手识别2.根据竞争对手分析制定策略 2.3.3 第三步&#xff1a;客户分析2.3.4 第四步&#xff1a;产品定义2.3.5 第五步&#xff1a;开发执…

常见计算机网络知识整理(未完,整理中。。。)

TCP和UDP区别 TCP是面向连接的协议&#xff0c;发送数据前要先建立连接&#xff1b;UDP是无连接的协议&#xff0c;发送数据前不需要建立连接&#xff0c;是没有可靠性&#xff1b; TCP只支持点对点通信&#xff0c;UDP支持一对一、一对多、多对一、多对多&#xff1b; TCP是…

突破性能瓶颈,几个高性能Python网络框架,高效实现网络应用

引言 随着互联网和大数据时代的到来&#xff0c;高性能网络应用的需求日益增加。Python作为一种流行的编程语言&#xff0c;在高性能网络编程领域也具有广泛的应用。本文将深入探讨基于Python的几种高性能网络框架&#xff0c;分析它们各自的优势和适用场景&#xff0c;帮助开发…