学习内容:
if 语句让代码有选择的执行,可以指定满足条件时才能执行的代码。
语句形式:
案例:
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语句。但可以使用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;
}
}
if 语句和 switch – case 语句的区别:
if 语句既可以做区间判断也可以做固定值判断
switch – case 语句只能做固定值判断,并且如果分支较多时,执行效率高于if 语句
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);
}