Swift基礎Part2 制御構文


Swiftの制御構文(演算子、及びfor、if…について)

1.演算子

算術演算子、比較演算子はいろいろなプログラミング言語とほぼ共通。

範囲演算子
start…endの形式で記述して、その範囲を指定する。
閉区間(endやstartの値を含んで、終端とする)場合には…、開区間(startやendの値を含まず)の場合は..<などと記述


for i in 0...10{
  print(i) //0~10まで出力される
}

for j in 0..<10{
  print(j) //0~9まで出力される
}

if文

オーソドックスな形式。条件式を括弧でくくらなくてもOK。


let ans=42
if ans==42{
  print("he Answer to the Ultimate Question of Life, the Universe, and Everything")
}

switch文

Javaと違いBreak不要。


var color="BLUE"

switch color{
case "BLUE":
  print("青")
case "RED":
  print("赤"):
case "WHITE":
  print("白")
 default:
  print("無色")
}

case文の評価にタプルを使用することができます。

//よくあるFizzBuzz
let no=10

switch(no%3,no%5){
case(0,0):
    print("FizzBuzz")
case (0,_): //アンダースコアは、式の評価対象から外れるという意味
    print("Fizz")
case(_,0):
    print("Buzz")
default:
    print(no)
}

Swiftにはswitch文のバリューバインディングという仕組みがあります。
タプルのある値を評価し、それに適合したら他の値を変数にバインドしてブロック内部で使う、というのが使い方のようです。
これは他の言語ではあまり見ない書き方なので新鮮ですね。

//switch文のバリューバインディング
let xy=(3,10)

switch xy{
case(let x,8..<15):
    print(x)
case(4...7,let y):
    print(y)
case(let x,let y):
    print("(x),(y)")
}

forループ

swift3.0から、indexを使用した旧来のfor文が使えなくなるらしいです。(参考:Swift3.0では使い慣れたfor文が使えなくなります


for(var i=0;i<10;i++){
  print("i") //swift3.0から廃止
}

ちなみにXCode7.3.1時点で、このスタイルのfor文を使用するとコンパイルこそ通るものの”C-style for statement is deprecated and will be removed in a future version of Swift”という警告が表示されます。

for in形式や、streamでの扱いに慣れておいたほうがよいでしょう。


for i in 0...10{
  print(i)
}


let languages:[String]=["Java","Swift","Ruby"]

for lang in languages{
    print(lang)
}



while文はどうせ使わないのでとばします。

私は、この本を使って勉強しています。