サーチ…
それ以外の場合
ダーツはIf Else:
if (year >= 2001) {
print('21st century');
} else if (year >= 1901) {
print('20th century');
} else {
print('We Must Go Back!');
}
ダーツには、3項演算子if演算子もあります。
var foo = true;
print(foo ? 'Foo' : 'Bar'); // Displays "Foo".
Whileループ
whileループとwhileループはDartで許可されます:
while(peopleAreClapping()) {
playSongs();
}
そして:
do {
processRequest();
} while(stillRunning());
ループは中断を使用して終了することができます。
while (true) {
if (shutDownRequested()) break;
processIncomingRequests();
}
continueを使用してループ内の反復をスキップできます。
for (var i = 0; i < bigNumber; i++) {
if (i.isEven){
continue;
}
doSomething();
}
For Loop
forループには2つのタイプがあります:
for (int month = 1; month <= 12; month++) {
print(month);
}
そして:
for (var object in flybyObjects) {
print(object);
}
for-inループは、単純にIterableコレクションを反復するときに便利です。 forEachようfor-in動作するIterableオブジェクトで呼び出すことができるforEachメソッドもあります。
flybyObjects.forEach((object) => print(object));
または、より簡潔に:
flybyObjects.forEach(print);
スイッチケース
Dartには長いif-elseステートメントの代わりに使用できるスイッチケースがあります:
var command = 'OPEN';
switch (command) {
case 'CLOSED':
executeClosed();
break;
case 'OPEN':
executeOpen();
break;
case 'APPROVED':
executeApproved();
break;
case 'UNSURE':
// missing break statement means this case will fall through
// to the next statement, in this case the default case
default:
executeUnknown();
}
整数、文字列、またはコンパイル時定数のみを比較できます。比較されるオブジェクトは、同じクラスのインスタンスでなければならず(そのサブタイプではない)、クラスは==をオーバーライドしてはなりません。
Dartのswitchの驚くべき点の1つは、空でないcase節がbreakで終わるか、あまり一般的ではなく、continue、throw、returnでなければならないということです。つまり、空ではないケース節が落ちることはありません。空ではない空文節を明示的に終了する必要があります。通常は中断します。 break、continue、throw、またはreturnを省略すると、実行時にその場所でコードにエラーが発生すると、静的な警告が表示されます。
var command = 'OPEN';
switch (command) {
case 'OPEN':
executeOpen();
// ERROR: Missing break causes an exception to be thrown!!
case 'CLOSED': // Empty case falls through
case 'LOCKED':
executeClosed();
break;
}
空でないcaseにフォールスルーが必要なcase 、 continueとラベルを使用できます。
var command = 'OPEN';
switch (command) {
case 'OPEN':
executeOpen();
continue locked;
locked: case 'LOCKED':
executeClosed();
break;
}
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow