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
2つのステートメント形式があります。
while(表达式/循环条件){
}
do{
语句/循环体
}while(表达式/循环条件);
知らせ:
- 1.最後のセミコロンを忘れないでください
- 2.ループ条件で使用される変数は初期化する必要があります
- 3.ループ本体には、ループを終了するための条件が必要です。そうでない場合、無限ループが発生します。
以下のコードを参照してください。
int i = 1;
while (i <= 10) {
print(i);
i++;
}
do...while()
最大の違いは、条件が真であるかどうかに関係なく、少なくとも1回は実行されることです。
var i = 2;
do{
print('执行代码');
}while(i < 2);
ステートメントを中断して続行する
breakステートメント関数:
switch
ステートメントのswitch
構造からフローを作成します。- loopステートメントでは、プロセスは現在のループからジャンプします。
break
ループが終了すると、次のコードは実行されません。
次のことを強調する必要があります。
- ステートメントがループ内ですでに実行されている場合、
break
ループ本体のブレーク後のステートメントは実行されません。 - 多層ループでは、
break
ステートメントは1つのレベルしかジャンプできません
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
同じコンテンツを追加できない場合。
セットadd
は、メソッドを介して1つ追加List
し、同じ値の要素をクリアできます。
var list = ['香蕉','苹果','西瓜','香蕉','苹果','香蕉','苹果'];
var s = new Set();
s.addAll(list);
print(s);
print(s.toList());
一般的なプロパティとメソッドをマップする
マップは順序付けられていないキーと値のペアであり、その一般的なプロパティは次のとおりです。
一般的なプロパティ:
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);
すべて:それらのすべてが条件を満たす必要があります
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");
});