Dart (1) - 변수, 상수, 기본 유형, 연산자, 조건부 판단 및 유형 변환
다트의 루프 표현
for 루프
for (int i = 1; i<=100; i++) {
print(i);
}
다음과 같이 작성할 수도 있습니다.
for (var i = 1; i<=10; i++) {
print(i);
}
List
순회를 위해 우리는 다음을 할 수 있습니다:
var list = <String>["张三","李四","王五"];
for (var element in list) {
print(element);
}
반복을 위해 루프 문 Map
을 사용할 수도 있습니다 .for
var person={
"name":"小明",
"age":28,
"work":["程序员","Android开发"]
};
person.forEach((key, value) {
print(value);
});
while 문
while
두 가지 명령문 형식이 있습니다.
while(表达式/循环条件){
}
do{
语句/循环体
}while(表达式/循环条件);
알아채다:
- 1. 마지막 세미콜론을 잊지 마세요
- 2. 루프 조건에서 사용되는 변수를 초기화해야 합니다.
- 3. 루프 본문에는 루프를 종료하는 조건이 있어야 합니다. 그렇지 않으면 무한 루프가 발생합니다.
아래 코드를 참조하세요.
int i = 1;
while (i <= 10) {
print(i);
i++;
}
do...while()
가장 큰 차이점은 조건이 참인지 아닌지에 관계없이 적어도 한 번은 실행된다는 것입니다.
var i = 2;
do{
print('执行代码');
}while(i < 2);
break 및 continue 문
break 문 함수:
switch
명령문 의switch
구조 에서 흐름을 만드십시오.- 루프문에서 프로세스는 현재 루프 밖으로 점프하며,
break
루프가 종료되면 다음 코드는 실행되지 않습니다.
다음을 강조해야 합니다.
- 문이 이미 루프에서 실행된
break
경우 루프 본문에서 break 이후의 문이 실행되지 않습니다. - 다층 루프에서
break
명령문은 한 수준으로만 이동할 수 있습니다.
break
루프 및 루프 switch case
에서도 사용할 수 있습니다 .for
while
계속 문의 기능:
현재 루프를 종료하기 위해 루프 문에서만 사용할 수 있습니다. 즉, 루프 본문 아래의 실행되지 않은 문을 건너뛰고 다음에 루프를 실행할지 여부를 판단합니다.
continue
for
루프와 루프 에서 사용할 수 while
있지만 루프에서 사용하는 것은 권장하지 않으며 while
실수로 죽기 쉽습니다.
휴식 사용:
//如果 i等于4的话跳出循环
for(var i=1;i<=10;i++){
if(i==4){
break; /*跳出循环体*/
}
print(i);
}
//break语句只能向外跳出一层
for(var i = 0;i < 5;i++){
for(var j = 0;j< 3;j++){
if(j == 1){
break;
}
}
}
while 루프가 튀어 나옵니다.
//while循环 break跳出循环
var i = 1;
while(i< =10){
if(i == 4){
break;
}
print(i);
i++;
}
계속 사용:
//如果i等于4的话跳过
for(var i=1;i<=5;i++){
if(i == 2){
continue; //跳过当前循环体 然后循环还会继续执行
}
print(i);
}
공통 속성 및 메서드 나열
공통 속성:
length
길이reversed
튀기다isEmpty
비었다isNotEmpty
비어 있지 않다
일반적인 방법:
add
증가하다addAll
연결된 배열indexOf
들어오는 특정 값 찾기remove
들어오는 특정 값 삭제removeAt
들어오는 인덱스 값 삭제fillRange
개정하다insert(index,value)
지정된 위치에 삽입insertAll(index,list)
지정된 위치에 목록 삽입toList()
다른 유형을 목록으로 변환join()
목록을 문자열로 변환split()
문자열을 목록으로 변환forEach
map
where
any
몇 가지 일반적인 속성과 메서드는 다음과 같은 예를 사용합니다.
var list=['张三','李四','王五',"小明"];
print(list.length);
print(list.isEmpty);
print(list.isNotEmpty);
print(list.reversed); //对列表倒序排序
print(list.indexOf('李四')); //indexOf查找数据 查找不到返回-1 查找到返回索引值
list.remove('王五');
list.removeAt(2);
list.fillRange(1, 2,'a'); //修改 1是开始的位置 2二是结束的位置
print(list);
list.insert(1,'a');
print(list);
list.insertAll(1, ['a','b']); //插入多个
세트
Set 의 주요 기능 은 배열의 중복된 내용을 제거하는 것으로 순서가 없고 반복할 수 없는 컬렉션이므로 인덱스로 값을 얻을 수 없습니다.
var s = new Set();
s.add('A');
s.add('B');
s.add('B');
print(s); //{A, B}
add
동일한 내용을 추가할 수 없는 경우 .
Setadd
은 메소드 를 통해 하나를 추가 List
하고 동일한 값을 가진 요소를 지울 수 있습니다.
var list = ['香蕉','苹果','西瓜','香蕉','苹果','香蕉','苹果'];
var s = new Set();
s.addAll(list);
print(s);
print(s.toList());
공통 속성 및 메서드 매핑
Map 은 순서가 지정되지 않은 키-값 쌍이며 공통 속성은 다음과 같습니다.
공통 속성:
keys
모든 키 값 가져오기values
모든 값 가져오기isEmpty
비었다isNotEmpty
비어 있지 않다
일반적인 방법:
remove(key)
지정된 키의 데이터 삭제addAll({...})
맵을 병합하여 맵에 속성 추가containsValue
지도 내부의 값이 true/false를 반환하는지 확인합니다.forEach
map
where
any
every
맵 변환:
List list = [1, 3, 4];
//map转换,根据返回值返回新的元素列表
var newList = list.map((value) {
return value * 2;
});
print(newList.toList());
여기서: 조건을 충족하는 요소를 가져옵니다.
List list = [1,3,4,5,7,8,9];
var newList = list.where((value){
return value > 5;
});
print(newList.toList());
any: 조건과 일치하는 요소가 있는지 여부
List list = [1, 3, 4, 5, 7, 8, 9];
//只要集合里面有满足条件的就返回true
var isContain = list.any((value) {
return value > 5;
});
print(isContain);
every: 모두가 조건을 충족해야 합니다.
List myList=[1,3,4,5,7,8,9];
//每一个都满足条件返回true 否则返回false
var flag = myList.every((value){
return value > 5;
});
print(flag);
집합은 forEach를 사용하여 순회됩니다.
var s=new Set();
s.addAll([11,22,33]);
s.forEach((value) => print(value));
지도는 forEach를 사용하여 탐색됩니다.
Map person={
"name":"张三",
"age":28
};
person.forEach((key,value){
print("$key -> $value");
});