目录
- 基础语法-流程控制
- if 语句
- 补充:三元运算符
- switch – case 语句
- switch – case 语句
- for 循环
- 计算购物车中被选中商品的总金额
基础语法-流程控制
学习内容:
- if 语句
- switch – case 语句
- for 循环语句
if 语句
if 语句让代码有选择的执行,可以指定满足条件时才能执行的代码。
语句形式:
- if … else
- if … else if … else
案例:
- 根据学生分数,判断学生成绩是否及格
- 根据学生分数,划分学生成绩所在等级
- 优秀:分数大于等于90分
- 良好:分数小于90分,且大于等于60分
- 不及格:分数小于60分
void main() {// 根据学生分数,判断学生成绩是否及格// 学生分数大于等于60分,及格,反之,不及格int score1 = 59;if (score1 >= 60) {print('及格');} else {print('不及格');}// 根据学生分数,划分学生成绩所在等级// 优秀:分数大于等于90分// 良好:分数小于90分,且大于等于60分// 不及格:分数小于60分int score2 = 30;if (score2 >= 90) {print('优秀');} else if (score2 >= 60) {print('良好');} else {print('不及格');}
}
补充:三元运算符
三元运算符可用于简化 if 语句。
语法结构:
条件表达式 ? 表达式1 : 表达式2
如果条件表达式的值为true,则返回表达式1的结果,反之,返回表达式2的结果。
案例:
使用三元运算符简化 根据学生分数判断学生成绩是否及格的逻辑。
注意点:三元运算符只适合简化两个分支的 if 语句。
// 使用三元运算符简化if语句// 条件表达式 ? 表达式1 : 表达式2// 注意点:三元运算符适合简化if语句里面的双分支score1 >= 60 ? print('及格') : print('不及格');
switch – case 语句
switch – case 语句也可以让代码有选择的执行。
-
语法结构:
在许多编程语言中,没有直接的switch-case语句。但可以使用if-elif-else结构来实现类似的功能。 -
案例:
根据订单状态,打印订单状态描述信息
订单状态:1为待付款、2为待发货、3为待收货、4为待评价
void main() {// 根据订单状态,打印出订单状态描述信息// 订单状态:1为待付款、2为待发货、3为待收货、4为待评价int orderState = 3;switch (orderState) {case 1:print('待付款');break;case 2:print('待发货');break;case 3:print('待收货');break;case 4:print('待评价');break;default:print('其他');break;}
}
switch – case 语句
if 语句和 switch – case 语句的区别:
if 语句既可以做区间判断也可以做固定值判断
switch – case 语句只能做固定值判断,并且如果分支较多时,执行效率高于if 语句
for 循环
- 语句形式:
for
for … in - 案例:使用for循环遍历列表
void main() {// for循环:循环打印for (var i = 0; i < 5; i++) {print('itcast');}// for循环:遍历列表List categories = ['居家', '美食', '服饰'];for (var i = 0; i < categories.length; i++) {String name = categories[i];// print(name);}// for ... in:遍历列表for (var item in categories) {// item直接就是遍历出来的元素print(item);}
}
计算购物车中被选中商品的总金额
逻辑:
遍历购物车中所有商品,并判断该商品是否被勾选
如果商品被勾选,则计算该商品总金额(数量 * 单价),反之,不计算金额
累加被勾选商品总金额
void main() {// 准备购物车数据List carts = [{'count':1,'price':10.0,'selected':true},{'count':2,'price':20.0,'selected':true},{'count':3,'price':30.0,'selected':false},];// 总计double totalAmount = 0.0;//遍历购物车carts.forEach((element) {// 是否选中bool selected = element['selected'];if(selected){double amount = element['count'] * element['price'];totalAmount += amount;}});print(totalAmount);
}