ProgateでSwiftを学ぶ【コース1は文字列、数値、変数、条件分岐】

progateでswiftコース1

progate swift

Progateはプログラミング学習サービスになります。コース1は無量でできる可能性はありますが、コース2、3の途中から有料になってしまう可能性があります。ProgateのSwiftは全部で3コースしかないのでコース1から有料になってしまう可能性もあります。

有料とはいえ月980円でいつでも解約できるので、気軽にやってみてもよいと思いますね。

今回はプログラミング言語のSwiftについて学んでいきたいと思います。この記事書いている時点ではSwiftはまったく触ったことがないので楽しみです。

Swiftって何?

ProgateによるとSwiftはiPhoneアプリを作るための言語ということだそうです。結構ざっくりしていますね。Progateの説明はこれだけでした。そんなもんか程度で学習していきたいと思います。ProgateのSwiftコースは最終的にクイズアプリを作っていくのが目標みたいですね。

表示

Swiftの表示は【 print(“Hello”) 】のようにprintを使うようですね。余談ですがpythonと一緒ですね。コメントアウトは【 // 】ダブルスラッシュですね。それとセミコロンは必須ではないみたいですね。

計算

Swiftの計算は他のプログラミング言語ととくに違いはないみたいですが一個重要な点があって半角スペースを設けないとエラーになるみたいですね。Swiftの計算はスペースがないとエラーになるようですね。

たとえば、【 print(5 +5) 】なんかだったら半角スペースが入ってないですからエラーになってしまうようですね。これは他の言語にはない特徴かと思います。

計算に使う記号は【 +, -, *, /, % 】といった記号ですね。とくに問題ないかと思います。syntax hilightterプラグインにswiftがないのでpreタグでいきます。

print(3 + 5)//8
print(11 % 4)//3
print("3 + 5")//3 + 5

定数

Swiftの定数とはデータを入れれる箱のようなもの・・・なんですが定数の場合は値の再代入はできません。定数を宣言するにはletを使うようにしますが、Swiftはデータ型の宣言もしなければならないので(20181021追記。Swiftには型推論があるので型宣言は省略できるが型宣言の省略は推奨されないようです。)定数を宣言するには以下のように書く必要があるようですね。

【 let name: String = “suzuki” 】Javaとかだと型宣言が先にくるのですが、Swiftの場合は型宣言があとにくるようですね。

let message: String = "Hello";
print(message);//Hello
let taxRate: Double = 0.08;
print(taxRate);//0.08

変数

変数とはデータを入れる箱のようなものですね。定数とちがって変数は値の再代入ができますね。代入とは変数に右辺の式を入れるということです。なお変数の場合は【 var 】を使わなければなりませんので変数を宣言するときは以下のようにします。

【 var name: String = “suzuki” 】値の更新をするんだったら【 name = “tanaka” 】のようにします。

let price: Int = 150
var count: Int = 3
print(price * count);//450
count = 5
print(price * count)//750

変数の更新

変数は値を再代入することによって更新できるのですが、これを省略してかけるような記号があるんですね。

【 +=, -=, *=, /=, %= 】とかですね。これはどういう意味かというと
【 var score: Int = 5 】とした場合に、【 score = score + 5 】と【 score += 5 】は同じ意味になるというやつですね。

var x: Int = 3
x += 2
print(x)//5

文字列の連結

Swiftの文字列の連結は+記号を使うようですね。PHPとかたまに.ピリオドを使って文字列連結する言語もあるのですがSwiftの文字列連結は+記号を使うようですね。

let firstName: String = "にんじゃ";
let lastName: String = "わんこ";
print(firstName + lastName);//にんじゃわんこ

文字列の変数展開

文字列の変数展開とは 文字列の 【 ”” 】ダブルクォーテーションの中で変数展開するというやつでSwiftの変数展開は 【 ”\()” 】でバックスラッシュとかっこをつかうようですね。他の言語は{}なみかっこをつかったりするのがおおいですね。PHPだったら${}。Rubyだったら#{}とかですね。

let name: String = "にんじゃわんこ";
print("私の名前は\(name)です");//私の名前はにんじゃわんこです

型変換

Swiftは型が厳格みたいなので違う型同士を計算しようとするとエラーがおきるみたいですね。そこで登場するのが型変換ですが、Swiftの型変換はわかりやすいみたいですね。ちなみにこの型変換することを【 キャスト 】とよぶようです。

【 String(age) Double(number) 】のように型の名前がそのままつかえるみたいですね。

let message: String = "歳の誕生日おめでとう!"
let age: Int = 20//20歳の誕生日おめでとう!
print(String(age) + message)
let price: Int = 300
let taxRate: Double = 0.08
print(Double(price) * taxRate);//24.0

条件分岐

Swiftの条件分岐にはif文を使います。条件分岐とは〇〇だったらこれをする。〇〇じゃなかったらこれをするというように処理を振り分けることを言います。if文は日本語になおすと【 〇〇だったら 】になります。

Swiftの条件分岐はif文をつかうのですが条件式に【 ()かっこをつかわに 】のですね。
書き方としては【 if 条件式{} 】のようにします。条件式にはかっこをつかわないのですが{}波括弧はつかうのですね。条件式がなりたった場合の処理を{}なみかっこに書いていけばいいわけですね。

let payment: Int = 5000 / 6
if payment < 1000{
    print("一人あたりの金額は1000円より小さいです")//〇これが出力される
}
if payment == 800{
    print("一人あたりの金額は800円です")
}

比較演算子

比較演算子は条件式の判定につかうためのものです。以下のようなものがあります。

== 〇〇と等しかったら
!= 〇〇と等しくなかったら
< 〇〇より小さい
> 〇〇より大きい
>= 〇〇以下
<= 〇〇以上

より大きいとかより小さいとかは比較対象をどちらにおくかによって表現はちがってくると思うのであまり細かいことは気にしなくてよいと思います。

真偽値

真偽値とはなにかというとtrueとかfalseのことですね。条件式が正しかったらtrueや正しくなったらfalseです。条件式をprint()で出力してみると真偽値を表示させることが可能です。また変数に真偽値を格納した場合は【 Bool型 】の変数を宣言する必要があります。Bool型の変数や定数は先ほどの条件分岐if文の条件式に使うことが可能です。

let carSpeed: Int = 80
let isSpeedOver: Bool = carSpeed > 60;
print(isSpeedOver);//true
if(isSpeedOver){
    print("スピード違反です");//〇
}

if文の条件式ですが【 ()をつけてもつけなくても 】よいみたいですね。

else

if文は〇〇だったらという意味になりますがelseは【 〇〇じゃなかったら 】という意味になります。条件式がみたされなかったらelseの{}なみかっこブロックの処理が実行されます。

let totalPrice: Int = 5600
let peopleCount: Int = 6
if(totalPrice % peopleCount == 0){
    print("割り切れます");
}else{
    print("割り切れません");//〇
}

論理演算子

論理演算子は複数の条件を設定したいときとかに使います。記号は【 &&, ||, !() 】などがありそれぞれの意味は↓になります。

&& 〇〇かつ
|| 〇〇または
!()/th>

〇〇でない
let height: Int = 170
if(height > 165 && height < 175){
    print("Mサイズがおすすめです")
}
let mathScore: Int = 90
let scienceScore: Int = 50
if(mathScore > 80 || scienceScore > 80){
    print("合格です");
}

Xcode

iphoneアプリ開発はmacパソコンでしかできないというのは涙目ですね。MacパソコンでないとXcodeという開発環境がつかえないんですね。iPhoneアプリの開発はこのXcodeを使う必要があるのでMacパソコンをもってない人はiPhoneアプリの開発をすることはできません。

筆者はMacパソコンをもってないですが、とりあえずProgateでできるみたいなのでとりあえず進めます。

Xcodeの構文

たぶんプロジェクトを作ったら最初に自動でコードが書かれてるとかそんな感じじゃないかと思います。

import UIKit
class ViewController: UIViewController {
    @IBOutlet weak var label: UILabel!
    override func viewDidLoad() {
        super.viewDidLoad()
        // ここでlabel.textに文字列を代入してください
        label.text = "Hello Swift";
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

ちょっとよくわからないのですが、フォームに部品を配置していってその中にコードを書いていくみたいな形ですね。Swift基本的な構文というよりも、Xcodeを使ったiPhoneアプリ作成のほうが主な内容になってくるのでしょうか。

簡単な部品など

labelに文字列を表示

label.text = "こんにちは"

textFieldの値を取得

let text: String = textFiled.text!

Progate Swiftコース1まとめ

XCodeをつかわないとiPhoneアプリの開発はできないわけですが、基本的な文法はProgateで学べそうですね。実際の開発はフォームというかどうかはわかりませんがフォーム部品を配置していく感じですね。

今回学んだないようは主に【文字列, 数値, 変数, 条件分岐】ですね。変数や定数は型宣言があとにくるのでそこはSwiftの特徴かと思います。

次の記事はProgateでSwiftを学ぶ【コース2は繰り返し、配列、辞書、オプショナル】 | 初心者のプログラミング