サーチ…


それ以外の場合

ダーツは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にフォールスルーが必要なcasecontinueとラベルを使用できます。

      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