2017-02-21 5 views
1

次のコードサンプルでは、​​「値7」が「デフォルト」ではなく印刷される理由を理解できません。 x = 6なので、x = 7というケース7が満たされないので、なぜ「値7」がスキップされる代わりに印刷され、実行がデフォルトに落ちるのですか?スイッチ、ケースおよびフォールスルーを使用したSwiftサンプルコード

let x = 6 
  
switch x { 
      
case 0...5: 
    println("0 through 5") 
      
case 6: 
    fallthrough 
      
case 7: 
    println("Value 7") 
      
default: 
    println("Default") 
} 
+1

[スウィフト:Switchステートメントフォールスルー行動]の可能な重複(http://stackoverflow.com/questions/32343690/swift-switch-statement-fallthrough-behavior) – Hamish

+1

はまた、言語ガイドの 'fallthrough' [セクションを参照してください](https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/ControlFlow.html#//apple_ref/doc/uid/TP40014097-CH9-ID140) - "* fallthroughキーワード'fall 'キーワードは単に次のcase(または' default' case)ブロック内のステートメントに直接コード実行を移動させますCの標準的な 'switch'文の振る舞い*" – Hamish

+0

ありがとう、Hamish。 –

答えて

2

x = 6スイッチステートメントは、それが場合ないデフォルト一つに「を通って落下」case 6について認めます。 caseに6を入力してdefaultのコードを実行させたい場合は、何もしないのでcaseを削除してください。 caseに6のコードを追加する場合は、defaultの前に最後のコードを作成して、必要な場所に落ちます。

関連する問題