欢迎关注github项目,100天Mojo从新手到大师
分支结构
应用场景
面对选择问题的时候就是分支结构的应用场景,比如给一个数,问它是不是偶数,这里就有一个”是不是的问题“,这里就会产生两个分支,而且这两个分支只有一个会被执行。这时候我们当然应该拿给到的数去除以2,如果没有余数就是偶数,有余数就不是偶数(奇数)。
if 语句
以下内容均与Python中用法一致,示例以供参考
简单的 if
if 2 > 1:
print("right")
if - else 结构
# 判断变量num是否为偶数
let num: Int = 10
if num % 2 == 0:
print("yes")
else:
print("no")
if - elif - else 结构
# 分段函数求值
# 3x - 5 (x > 1)
# f(x) = x + 2 (-1 <= x <= 1)
# 5x + 3 (x < -1)
let x: Int = 8
if x > 1:
y = 3 * x - 5
elif x >= -1:
y = x + 2
else:
y = 5 * x + 3
print(f'f({x}) = {y}')
嵌套的 if
# 分段函数求值
# 3x - 5 (x > 1)
# f(x) = x + 2 (-1 <= x <= 1)
# 5x + 3 (x < -1)
let x: Int = 8
let y: Int
if x > 1:
y = 3 * x - 5
else:
if x >= -1:
y = x + 2
else:
y = 5 * x + 3
print(x, y)
说明: 大家可以自己感受一下这两种写法到底是哪一种更好。Python之禅中有这么一句话“Flat is better than nested.”,之所以提倡代码“扁平化”是因为嵌套结构的嵌套层次多了之后会严重的影响代码的可读性,所以能使用扁平化的结构时就不要使用嵌套。
应用案例
练习1:输入三条边的长度如果能构成三角形就计算周长和面积
任意两边之和大于第三边,就是三角形
根据海伦公式,可以使用三角形边长计算面积:S=√p(p-a)(p-b)(p-c)
参考答案:
let a: Int = 4
let b: Int = 5
let c: Int = 6
if a + b > c and a + c > b and b + c > a:
let l: FloatLiteral = a + b + c
print(l)
let p: FloatLiteral = l / 2
let area: FloatLiteral = (p * (p - a) * (p - b) * (p - c)) ** 0.5
print(area)
else:
print('不能构成三角形')
练习2:百分制成绩转等级制
要求:如果输入的成绩在90分以上(含90分)输出A;80分-90分(不含90分)输出B;70分-80分(不含80分)输出C;60分-70分(不含70分)输出D;60分以下输出E。
参考答案:
let score: Int = 88
let grade: String
if score >= 90:
grade = 'A'
elif score >= 80:
grade = 'B'
elif score >= 70:
grade = 'C'
elif score >= 60:
grade = 'D'
else:
grade = 'E'
print('对应的等级是:', grade)
练习3:登录验证
要求:如果没有输入密码进行提示,输入了则判断密码是否为123456,是则登录成功,否则登录失败
参考答案:
var password: String
if password:
if password == '123456':
print('登录成功')
else:
print('登录失败')
else:
print('请输入密码')