03-Dart 运算符和循环
本篇从大地老师《Dart 入门实战教程》学习整理而来。
算术运算符
- + - * / ~/ (取整) %(取余)
int a=13;
int b=5;
print(a+b); //加
print(a-b); //减
print(a*b); //乘
print(a/b); //除
print(a%b); //其余
print(a~/b); //取整
关系运算符
- == != > < >= <=
int a=5;
int b=3;
print(a==b); //判断是否相等
print(a!=b); //判断是否不等
print(a>b); //判断是否大于
print(a<b); //判断是否小于
print(a>=b); //判断是否大于等于
print(a<=b); //判断是否小于等于
赋值运算符
- 基础赋值运算符 = ??=
- 复合赋值运算符 += -= *= /= %= ~/=
// 基础赋值运算符
// 表示如果b为空的话把 23赋值给b
b??=23;
// 复合赋值运算符
//表示a=a+10
a+=10;
// ++ -- 在赋值运算里面 如果++ -- 写在前面 这时候先运算 再赋值,如果++ --写在后面 先赋值后运行运算
条件表达式
- if else switch case
- 三目运算符
- ??运算符
// if else
bool flag = true;
if (flag) {
print('true');
} else {
print('false');
}
// switch case
var score = 41;
if (score > 90) {
print('优秀');
} else if (score > 70) {
print('良好');
} else if (score >= 60) {
print('及格');
} else {
print('不及格');
}
// 三目运算符
bool flag = false;
String c = flag ? '我是true' : '我是false';
// ??运算符 它的意思是左边如果为空返回右边的值,否则不处理
var a;
var b= a ?? 10;
print(b); // 结果10
var a=22;
var b= a ?? 10;
print(b); // 报错
类型转换
//1、Number与String类型之间的转换
// Number类型转换成String类型 toString()
var myNum=12;
var str=myNum.toString();
print(str is String);
// String类型转成Number类型 int.parse(str)
String str='123';
var myNum=int.parse(str);
print(myNum is int);
// 2、其他类型转换成Booleans类型
// isEmpty:判断字符串是否为空
var str = '';
if (str.isEmpty) {
print('str空'); // str空
} else {
print('str不为空');
}
// isNaN:判断是否为NaN
var myNum = 0 / 0;
if (myNum.isNaN) {
print('NaN');
}
循环
for
for (int i = 1; i<=100; i++) {
print(i);
}
//第一步,声明变量int i = 1;
//第二步,判断i <=100
//第三步,print(i);
//第四步,i++
//第五步 从第二步再来,直到判断为false
while
注意:
1、最后的分号不要忘记
2、循环条件中使用的变量需要经过初始化
3、循环体中,应有结束循环的条件,否则会造成死循环。
while(表达式/循环条件){
}
do{
语句/循环体
}while(表达式/循环条件);
break
break可以用在switch case中 也可以用在 for 循环和 while循环中
-
在switch语句中使流程跳出switch结构。
-
在循环语句中使流程跳出当前循环,遇到break 循环终止,后面代码也不会执行
-
如果在循环中已经执行了break语句,就不会执行循环体中位于break后的语句。
-
在多层循环中,一个break语句只能向外跳出一层
continue
只能在循环语句中使用,使本次循环结束,即跳过循环体重下面尚未执行的语句,接着进行下次的是否执行循环的判断。
continue可以用在for循环以及 while循环中,但是不建议用在while循环中,不小心容易死循环