让程序根据条件走不同的路。
设 气温 = 32
如果 气温 > 30
打印("好热")
否则
打印("还行")
注意 打印 前面空了四格。这个缩进很重要,它表示「这行属于上面那个如果」。
如果 后面的条件成立,就走缩进里的内容否则 缩进里的内容⚠️ 缩进是 CNplus 的语法,不是装饰。少了缩进会报
CN0204(期望缩进块)。
条件必须是「能回答是/不是的问题」,常用比较符号:
| 写法 | 意思 |
|---|---|
> |
大于 |
< |
小于 |
>= |
不小于(大于等于) |
<= |
不大于(小于等于) |
== |
等于吗 |
!= |
不等于吗 |
设 年龄 = 20
打印(年龄 >= 18) # 真
打印(年龄 == 20) # 真
打印(年龄 != 20) # 假
注意「等于吗」是两个等号
==。一个等号=是「赋值」,不是「判断」。
CNplus 和 Python 最大的不同之一——条件必须是布尔:
设 气温 = 32
如果 气温 # ❌ 错误 CN0301:条件必须是布尔值
打印("好热")
如果 气温 > 30 # ✅ 这是「是/不是」问题
打印("好热")
如果 0、如果 ""、如果 1 在 CNplus 里都是编译错误,不是「假」也不是「真」。
💡 这点是故意的。Python 里
if 0和if 1都能跑但含义微妙,新手很容易踩坑。CNplus 宁可当场提醒你。
| 写法 | 意思 | 别名 |
|---|---|---|
甲 与 乙 |
两个都得成立 | 且 并且 |
甲 或 乙 |
有一个成立就行 | 或者 |
非 甲 |
反过来 | 不 |
也可以这么写:
与/或/非各有别名(且/并且/或者/不),效果完全一样。这是 CNplus 的「一种意思多种写法」特性,详见关键字与别名。
设 年龄 = 20
设 有票 = 真
如果 年龄 >= 18 与 有票
打印("可以进场")
如果 非 有票
打印("没票进不去")
# 「不」和「非」一样,挑顺眼的用:
如果 不 年龄 >= 18
打印("未成年")
判断成绩评级这种「好几个档次」的情况,用 否则 如果 一路接下去:
设 分数 = 85
如果 分数 >= 90
打印("优秀")
否则 如果 分数 >= 60
打印("及格")
否则
打印("不及格")
否则 如果 就是「不然的话,再判断一下」。程序从上往下,找到第一个成立的就执行,后面的都不看。比一层层嵌套 如果 清爽得多。
学过 Python 的人,看这里——这一章学的,用 Python 写是这样。零基础可以直接跳过,去下面做「练一练」。
先把这一章串成一个完整程序(CNplus):
设 分数 = 85
如果 分数 >= 90
打印("优秀")
否则 如果 分数 >= 60
打印("及格")
否则
打印("不及格")
同一个程序,用 Python 写:
分数 = 85
if 分数 >= 90: # 如果 分数 >= 90(结尾要冒号)
print("优秀")
elif 分数 >= 60: # 否则 如果 → elif
print("及格")
else: # 否则 → else
print("不及格")
| CNplus | Python |
|---|---|
如果 条件 |
if 条件:(结尾冒号) |
否则 如果 条件 |
elif 条件: |
否则 |
else: |
与 / 或 / 非 |
and / or / not |
== / != |
一样 |
最大的不同:CNplus 只有 真/假 能当条件,如果 0 报 CN0301。Python 里 if 0、if ""、if [] 都当「假」,if 1 当「真」——这是 Python 新手最常踩的坑,CNplus 刻意堵死了。
下一步:做练习,然后继续下一课。