String和Num的类型转换 , ++–自增自减 , for循环基础语法 , 二维List和Map和二维for循环 , 循环语句while和do…while , break语句和continue语句的功能
Number和String类型之间的转换
Number类型转换为String类型使用 toString()方法
1
2
3var a=12; //定义a=12 数值类型
var str=a.toString(); //使用toString方法
print(str is String); //用is判断str是不是String类型 输出: trueString类型转换为Number类型使用 parse()方法
例1:
1
2
3String str='123'; // '123'是一个字符串
var a=double.parse(str); //parse的使用方式 double int 都可以使用
print(a is double); //输出: true如果String转Namber时,因str=’ ‘空而报错,可食用try….catch 例如:
1
2
3
4
5
6
7
8String price=' '; //可能是空格 空 其他非数字内容 price(价格)
try{ //如果有数据就执行转换,错误数据就执行catch
var a=double.parse(price);
print(a);
print(a is double);
}catch(err){
print(0); //输出: 0
}也可以使用if..else和isEmpty(为空)或者NotisEmpty(不为空)方法 例如:
1
2
3
4
5
6
7if(price.isEmpty){
}
-----------------------------------------
if(price.NotisEmpty){
}
自增自减
++(自增) , –(自减)
在赋值运算中,如果++–写在前面,这时会先运算,再赋值.如果++–写在后面则先赋值,后运算
例1:
1
2
3
4var a=10;
var b=a++; //++写在后面所以是先赋值再运算
print(a); //后运算 输出: 11
print(b); //先赋值 输出: 10例2:
1
2
3
4var a=10;
var b=--a; //--写在前面所以是先运算再赋值
print(a); //先运算 输出: 9
print(b); //后赋值 输出: 9不是赋值运算的情况下++ , –写在前面后面效果一样
For循环的基本语法
1 | for(int i=1;i<=100;i++){ //1.声明变量int i=1; 2.判断i<=100; 3.print(i); 4.i++; 5.从第二步继续开始循环,直到判断为false. |
例1:打印出0-50的偶数
1
2
3
4
5for(var a=0;a<=50;a++){
if(a%2==0){ //在for循环中嵌套if判断语句,判断条件为a取整2==0则输出a,否则 就是 不是偶数的 跳过
print(a);
} //所以没写else
} //输出: 0 2 4 6....50;例2:求1+2+3….+100的和
1
2
3
4
5var b=0; //从1开始加所以b=0
for(int a=0;a<=100;a++){
b+=a; //b=b+a
}
print(b); //输出: 5050例3:求5的阶乘
1
2
3
4
5var b=1; //0x1=0所以b=1
for(int a=1;a<=5;a++){
b*=a; //b=b*a
}
print(b); //输出: 120例4:打印List数组
1
2
3
4List a=['张三','李四','王五']; //定义数组a
for(int b=0;b<a.length;b++){ //a.length是使用了length属性 是指list的长度 a数组长度为3但编号是从0开始所以是0 1 2,所以用b<a.length 因为没有编号3
print(a[b]); //输出: 张三 李四 王五
}例5:打印数组中的Map树形
1
2
3
4List a=[{'name':'熊大'},{'name':'熊二'},{'name':'熊三'}]; //定义数组a中有三个map
for(var b=0;b<a.length;b++){ //for循环打印出数组中每个map中的name的value
print(a[b]['name']); //输出: 熊大 熊二 熊三
}二维List和Map和二维for循环
例6:用二维for循环打印list中嵌套的map中的list
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38main() {
List list = [
{
'目录': '游戏',
'内容': [
{'名称': 'Steam'},
{'名称': 'Origin'},
{'名称': 'Uplay'}
]
},
{
'目录': '工作',
'内容': [
{'名称': 'Java'},
{'名称': 'Dart'},
{'名称': 'Python'}
]
}
];
for (int a = 0; a < list.length; a++) {
print('----------------------------------------');
print(list[a]['目录']);
for (int b = 0; b < list[a]['内容'].length; b++) {
print(list[a]['内容'][b]['名称']);
}
}
}
//输出:
----------------------------------------
游戏
Steam
Origin
Uplay
----------------------------------------
工作
Java
Dart
Python
循环语句while和do…while
while和do…while之间的区别: while在第一次循环条件不成立的情况下,什么都不会打印;do…while因为会先执行一次再判断,所以会打印第一次 例如:
例1:
1
2
3
4int a=10;
while(a<2){ //a大于2 所以不执行内容 输出应为'空'
print('你好');
} //输出: '空'例2:
1
2
3
4var a=10;
do{
print('你好'); //do..while的情况下会先执行此 打印出你好
}while(a<2); //然后判断 a大于2 停止循环 但第一遍已经输出: 你好注意:1.do..while最后需要填分号 2.循环条件中使用的变量需要经过初始化 3.循环体中应有结束循环的条件,不然就成了死循环 例如:
例1: while打印1~10
1
2
3
4
5int a=1;
while(a<=10){
print(a);
a++;
} //输出: 1234...10例2:while求1~100的和
1
2
3
4
5
6
7int a=1;
int b=0;
while(a<=100){
b+=a;
a++;
}
print(b); //输出: 5050例3:do…while求1~100的和
1
2
3
4
5
6
7int a=1;
int b=0;
do{
b+=a;
a++;
}while(a<=100);
print(b); //输出: 5050例4:死循环 错误写法
1
2
3
4int a=1;
while(a<=10){
print(a);
} //死循环,会不停输出111111因为没有满足结束条件
break语句和continue语句的功能
break语句功能:在switch中跳出switch结构
在循环语句中使流程跳出当前循环,遇到break循环终止,后面的代码也不会执行
如果循环中已经执行了break语句,就不会执行循环体中break之后的语句
多层循环中,一个break语句只能向外跳出一层
break可以用在switch…case中,也可以用在for循环和while循环中
continue语句功能:跳过当前循环
使本次循环结束,即跳过循环体中下面尚未执行的语句,接着进行下一次循环
continue只能在循环语句中使用,可以在for循环以及while循环中使用,但不建议用在while循环中使用,容易造成死循环
例1:如果a=4,跳过当前循环
1
2
3
4
5
6for(int a=1;a<=5;a++){
if(a==4){ //如果a==4
continue; //跳出当前循环
}
print(a); //输出: 1235
}例2:如果a=4的话结束循环(跳出循环)
1
2
3
4
5
6for(var a=1;a<=5;a++){
if(a==4){
break; //结束
}
print(a); //输出: 123
}例3:在多层循环中向外跳出一层
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16for(int a=1;a<=3;a++){
print('外层'); //输出一个外层
for(int b=1;b<=3;b++){
if(b==2){
break; //当b=2的时候就跳出当前循环 但是外部循环仍在继续
}
print('内层'); //因为内层到2就跳出,所以只有1会打印一次内层
}
}
//输出:
// 外层
// 内层
// 外层
// 内层
// 外层
// 内层