华为仓颉语言入门(6):if条件表达式

火影  论坛元老 | 2024-9-28 05:51:23 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1754|帖子 1754|积分 5262

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
解锁Python编程的无限大概:《奇妙的Python》带你漫游代码天下
仓颉语言中的 if 表达式用于根据条件的值来决定是否执行相干代码逻辑。if 表达式有三种形式:单分支的 if 表达式、双分支的 if 表达式和嵌套的 if 表达式。
单分支的 if 表达式

单分支的 if 表达式只有一个分支,其语法如下:
  1. if (条件) {
  2.     代码块
  3. }
复制代码
其中的条件必须是一个布尔范例的表达式,由一对匹配的花括号困绕代码块。执行时,首先测试条件的值,假如条件为 true,就执行括号内的代码块;否则,不执行任何代码。
比方:
  1. // isScorePassed 表示分数是否合格,true 表示合格,false 表示不合格
  2. if (isScorePassed) {
  3.     println("合格")
  4. }
  5. println("执行完毕
  6. ")
复制代码
在上述代码中,isScorePassed 为 true 时,将输出:
  1. 合格
  2. 执行完毕
复制代码
假如 isScorePassed 为 false,则只会输出:
  1. 执行完毕
复制代码
这表明,单分支的 if 表达式是否会执行代码,完全取决于条件的取值。值得注意的是,if 表达式的范例为 Unit,其值为 0。
双分支的 if 表达式

双分支的 if 表达式包罗两个分支,语法如下:
  1. if (条件) {
  2.     代码块1
  3. } else {
  4.     代码块2
  5. }
复制代码
在执行时,假如条件为 true,执行代码块1;假如条件为 false,则执行代码块2。
比方:
  1. if (isScorePassed) {    println("合格")} else {    println("不合格")}println("执行完毕
  2. ")
复制代码
假如 isScorePassed 为 true,输出结果为:
  1. 合格
  2. 执行完毕
复制代码
假如 isScorePassed 为 false,输出结果为:
  1. 不合格
  2. 执行完毕
复制代码
这里,else 分支必须在 if 表达式之后的代码中运行。
双分支 if 表达式的范例

当 if 表达式的值被使用时,双分支的 if 表达式的范例是 if 分支和 else 分支范例的最小公共父类。
比方:
  1. main() {
  2.     var creditScore: UInt16 = 800
  3.     var interestRate: Float64 = if (creditScore >= 600) {
  4.         0.06
  5.     } else {
  6.         0.08
  7.     }
  8.     println(interestRate)
  9. }
复制代码
在这个例子中,interestRate 的值是根据 creditScore 的值决定的。假如 creditScore 大于或即是 600,则利率为 0.06;否则,利率为 0.08。最终输出利率的结果。
嵌套的 if 表达式

当渴望匹配更多的条件时,可以使用嵌套的 if 表达式。嵌套 if 表达式可以包罗多个分支。其语法结构如下:
  1. if (条件1) {
  2.     代码块1
  3. } else if (条件2) {
  4.     代码块2
  5. } ...
  6. else {
  7.     代码块n
  8. }
复制代码
其中每个条件都必须是布尔范例的表达式。整个 if 表达式的执行流程如下:


  • 测试条件1的值,假如为 true,执行代码块1,整个 if 表达式竣事;
  • 假如条件1为 false,测试条件2的值,以此类推,直到找到为 true 的条件;
  • 假如全部条件都为 false,则执行 else 分支中的代码块。
比方:
  1. if (creditScore < 600) {
  2.     interestRate = 0.08
  3. } else if (creditScore < 800) {
  4.     interestRate = 0.06
  5. } else {
  6.     interestRate = 0.05
  7. }
  8. println(interestRate)
复制代码
根据 creditScore 的值,选择执行不同的分支,最终输出相应的利率。
if 表达式中的范例推断

在某些情况下,if 表达式不仅用于条件分支选择,还可以返回值。此时,if 表达式的返回值范例由 if 和 else 分支的范例决定。
比方,以下代码会根据 creditScore 的值,推断出 interestRate 的范例:
  1. main() {
  2.     var creditScore: UInt16 = 800
  3.     var interestRate: Float64 = if (creditScore >= 600) {
  4.         0.06
  5.     } else {
  6.         0.08
  7.     }
  8.     println(interestRate)
  9. }
复制代码
在这个例子中,interestRate 的范例被推断为 Float64,因为 if 和 else 分支中的返回值都是浮点数。这种情况适用于条件表达式需要返回一个值的场景。
嵌套 if 表达式中的执行次序

嵌套的 if 表达式可以根据多个条件执行不同的逻辑。比方,以下代码展示了如何根据不同的 creditScore 值调解利率:
  1. if (creditScore < 600) {
  2.     interestRate = 0.08
  3. } else if (creditScore < 800) {
  4.     interestRate = 0.06
  5. } else if (creditScore < 1000) {
  6.     interestRate = 0.05
  7. } else {
  8.     interestRate = 0.04
  9. }
复制代码
在这个例子中,程序将依次测试 creditScore 是否满足每个条件,直到找到符合条件的分支。假如 creditScore 小于 600,利率设置为 0.08;假如小于 800,但大于即是 600,利率为 0.06,以此类推。最终的输出结果取决于条件的匹配情况。
条件表达式的最佳实践

对于 if 表达式的使用,编写整齐的代码并避免重复黑白常告急的。比方,假如条件非常复杂,可以通过添加额外的条件块减少不须要的代码重复,确保代码逻辑清晰。
比方:
  1. if (creditScore <= 1000) {
  2.     if (creditScore < 600) {
  3.         interestRate = 0.08
  4.     } else if (creditScore < 800) {
  5.         interestRate = 0.06
  6.     } else if (creditScore < 900) {
  7.         interestRate = 0.05
  8.     } else {
  9.         interestRate = 0.04
  10.     }
  11. } else {
  12.     println("数据错误!")
  13. }
复制代码
这种写法将不同的条件组合在一起,确保只有在 creditScore 小于即是 1000 时才会进入利率设置的逻辑,假如超出此范围,将输堕落误信息。这是一种防止数据错误的良好实践。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

火影

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表