【Swift入門 #3】最初のプログラム - Hello, World!とprint()関数

プログラミングの第一歩、Hello, World!を書いてみましょう。print()関数の使い方を通して、Swiftの基本を学びます。

📚 Swift入門シリーズ: #1 なぜSwift?#2 環境構築


プログラミング学習の最初の一歩は、伝統的に「Hello, World!」を表示するプログラムを書くことから始まります。この記事では、Swiftで最初のプログラムを書き、print() 関数について学びましょう。

著者
著者: Sera
大学院でAI作曲に関して研究中!
来春からデータサイエンティストとして働く予定の技術オタク。
初心者
登場人物: あかり
流行りのAIやWeb技術に興味津々!
『知りたい』気持ちで質問を止められない、好奇心旺盛な学生。
normalの表情
初心者

前回はXcodeをインストールして、Playgroundの使い方を学んだね!

専門家

そうだね。今回は、いよいよ最初のSwiftプログラムを書いてみよう。

happyの表情
初心者

Xcodeもインストールできたし、Playgroundも使えるようになったよ!

専門家

いいね!それじゃあ、いよいよ最初のSwiftコードを書いてみよう。

excitedの表情
初心者

環境も整ったし、いよいよコードを書くぞ!何から始めればいい?

専門家

プログラミングを始める人が最初に書く伝統的なプログラムがあるんだ。それが「Hello, World!」っていうプログラムなんだよ。

confusedの表情
初心者

Hello, World!?なんでそんなプログラムを書くの?

専門家

いい質問だね。「Hello, World!」は、1970年代から続くプログラミングの伝統なんだ。新しい言語を学ぶとき、まず画面に「Hello, World!」と表示するプログラムを書くのが慣習になっているんだよ。

この単純なプログラムには、実はいくつかの目的があるんだ。まず、環境が正しく動作するか確認できる こと。コードを書いて実行できれば、開発環境が正しくセットアップされている証拠になるんだ。次に、言語の基本的な構文を学べる こと。出力の仕方を知ることで、後の学習でデバッグやテストがしやすくなるんだよ。そして、達成感を味わえる こと。最初の一歩を踏み出すことで、「プログラミングができた!」という実感が得られるんだ。

happyの表情
初心者

なるほど!じゃあ早速書いてみよう!

Hello, World!を書いてみよう

専門家

それじゃあ、前回作ったPlaygroundを開いて、次のコードを書いてみて。既に書かれているコードは全部消して、新しく書いてもいいし、下に追加してもいいよ。

print("Hello, World!")

たったこれだけなんだ。

surprisedの表情
初心者

え!?これだけでいいの!?

専門家

そう、たった1行だけ。Swiftはシンプルで書きやすい言語だから、複雑な準備は必要ないんだ。このコードを書くと、コンソールエリアに「Hello, World!」と表示されるはずだよ。

スクリーンショット:Hello, World!の実行結果

(ここにPlaygroundでHello, World!を実行した画面のスクリーンショットを挿入)

excitedの表情
初心者

本当だ!コンソールに「Hello, World!」って表示された!すごい!

専門家

おめでとう!これが君の最初のSwiftプログラムだよ。プログラマーとしての第一歩を踏み出したね。

print()関数とは?

normalの表情
初心者

ところで、print()って何?どういう意味なの?

専門家

print()関数 と呼ばれるものなんだ。関数っていうのは、特定の処理をまとめたもので、名前をつけて何度も使えるようにしたものなんだよ。

print() という関数は、括弧の中に書いた内容を コンソールに出力する 機能を持っているんだ。「print」は英語で「印刷する」とか「表示する」という意味だよね。プログラミングの世界では、画面やコンソールに文字を表示することを「print」って呼ぶのが一般的なんだ。

関数を使うことを「関数を呼び出す」とか「関数をコールする」って言うんだけど、使い方はとても簡単。関数名を書いて、その後に括弧 () をつけるだけなんだ。そして、括弧の中に、関数に渡したい値(これを「引数」って呼ぶ)を書くんだよ。

confusedの表情
初心者

引数?難しい言葉が出てきた...

専門家

ごめんごめん。引数(ひきすう)っていうのは、関数に渡す情報のことなんだ。例えば、print("Hello, World!") の場合、"Hello, World!" が引数なんだよ。つまり、「この文字列を表示してね」って関数にお願いしているわけ。

関数っていうのは、料理のレシピみたいなものだと思ってもらえるといいかな。レシピ(関数)があって、材料(引数)を渡すと、料理(結果)ができるイメージ。print() 関数の場合、文字列を材料として渡すと、それをコンソールに表示してくれるんだ。

happyの表情
初心者

あー!レシピと材料の例えはわかりやすい!

文字列とダブルクォーテーション

normalの表情
初心者

"Hello, World!" の周りについてる記号は何?

専門家

いい観察力だね。この " (ダブルクォーテーション)は、文字列を表す記号 なんだ。Swiftでは、文字列(テキスト)を表すときは、必ずダブルクォーテーションで囲む必要があるんだよ。

これによって、Swiftは「あ、これは文字列なんだな」って理解できるわけ。もしダブルクォーテーションがないと、Swiftは「Hello」を変数名や命令だと勘違いしてしまうんだ。

試しに、ダブルクォーテーションを外して書いてみると、エラーが出るよ。

print(Hello, World!)  // エラーになる

これを実行すると、赤い×印とともにエラーメッセージが表示されるはずなんだ。

confusedの表情
初心者

本当だ!エラーになった!なんで?

専門家

ダブルクォーテーションがないと、Swiftは HelloWorld を変数名だと思ってしまうんだ。でも、そんな変数は定義されていないから、「Cannot find 'Hello' in scope」(Helloが見つかりません)というエラーが出るんだよ。

文字列を扱うときは、必ずダブルクォーテーションで囲む って覚えておいてね。これがSwiftのルールなんだ。

いろいろな文字列を表示してみよう

excitedの表情
初心者

じゃあ、他の言葉も表示できる?

専門家

もちろん!print() の括弧の中に、好きな文字列を書けば、何でも表示できるよ。試しにいくつか書いてみよう。

print("こんにちは、世界!")
print("Swiftは楽しい")
print("123")
print("プログラミングを学ぼう")

これらを順番に書くと、それぞれの文字列がコンソールに表示されるんだ。print() を呼び出すたびに、改行されて表示されるから、4行の出力が得られるよ。

happyの表情
初心者

日本語も表示できるんだ!数字もダブルクォーテーションで囲むの?

専門家

いい質問だね。ここでは "123" とダブルクォーテーションで囲んでいるから、これは 文字列としての123 なんだ。数字として扱いたい場合は、ダブルクォーテーションは不要なんだよ。

print(123)  // 数字の123
print("123")  // 文字列の"123"

今は違いがわかりにくいかもしれないけど、後で変数や計算を学ぶときに、この違いが重要になってくるんだ。文字列の123は計算できないけど、数字の123は計算できる、といった違いがあるんだよ。

空の文字列と特殊文字

normalの表情
初心者

空っぽの文字列とか、特殊な文字って表示できるの?

専門家

できるよ!まず、空の文字列 は、ダブルクォーテーションの間に何も書かなければいいんだ。

print("")  // 何も表示されない(改行だけ)

これを実行すると、何も表示されないけど、改行はされるんだ。

次に、特殊文字 について説明するね。Swiftには「エスケープシーケンス」という、特殊な文字を表現する方法があるんだ。バックスラッシュ \ の後に特定の文字を書くことで、特殊な意味を持たせられるんだよ。

よく使うエスケープシーケンスを紹介するね。

print("改行を\n入れる")  // \nで改行
print("タブを\t入れる")  // \tでタブ
print("ダブルクォーテーション\"を表示")  // \"でダブルクォーテーション
print("バックスラッシュ\\を表示")  // \\でバックスラッシュ

\n は改行を表すから、「改行を」と「入れる」が別の行に表示されるんだ。\t はタブ文字で、スペースより広い空白を作るんだよ。

ダブルクォーテーション自体を表示したいときは \" を使う必要があるんだ。なぜなら、普通に " を書くと、文字列の終わりだと思われてしまうからね。

surprisedの表情
初心者

へー!バックスラッシュで特殊な意味を持たせられるんだ!

複数行の文字列

専門家

Swiftには、もう一つ便利な文字列の書き方があるんだ。複数行文字列 っていうんだけど、3つのダブルクォーテーション """ で囲むと、複数行の文字列を簡単に書けるんだよ。

print("""
こんにちは
これは複数行の
文字列です
""")

これを実行すると、3行にわたって表示されるんだ。長い文章を書くときや、コードの見た目を整えたいときに便利なんだよ。

happyの表情
初心者

おお!これは便利そう!

print()の引数を複数渡す

normalの表情
初心者

print()って、1つの文字列しか表示できないの?

専門家

実は、print() 関数は複数の引数を受け取ることができるんだ。カンマ , で区切って複数の値を渡すと、それらが空白で区切られて表示されるんだよ。

print("Hello", "World", "!")

これを実行すると、「Hello World !」と表示されるんだ。カンマで区切った値が、自動的にスペースで連結されて出力されるんだよ。

さらに、文字列と数字を混ぜることもできるんだ。

print("私は", 20, "歳です")

これは「私は 20 歳です」と表示されるんだ。数字をダブルクォーテーションで囲まなくても、print() が自動的に文字列に変換して表示してくれるんだよ。

excitedの表情
初心者

便利!いろんな書き方ができるんだね!

print()のオプションパラメータ

専門家

もう少し高度な話になるけど、print() 関数にはオプションのパラメータがあるんだ。興味があれば知っておくといいよ。

まず、separator パラメータ。これは、複数の値を区切る文字を指定できるんだ。デフォルトではスペースだけど、変更できるんだよ。

print("A", "B", "C", separator: "-")

これを実行すると、「A-B-C」と表示されるんだ。スペースの代わりにハイフンで区切られているね。

次に、terminator パラメータ。これは、print() の最後に追加する文字を指定できるんだ。デフォルトでは改行 \n が追加されるんだけど、これを変更すると改行しないようにできるんだよ。

print("Hello", terminator: "")
print("World")

これを実行すると、「HelloWorld」と表示されるんだ。1つ目の print() の後に改行が入らないから、2つ目の print() が同じ行に表示されるんだよ。

confusedの表情
初心者

separator とか terminator って何?

専門家

これらは 名前付き引数 って呼ばれるもので、関数に渡す値に名前をつけることができるんだ。separator:terminator: のように、コロン : の前が名前で、後ろが値なんだよ。

今は「へー、そういうこともできるんだな」くらいに思っておいてもらえれば大丈夫。このコースの後半で、関数について詳しく学ぶから、その時にもっと理解が深まるよ。

happyの表情
初心者

わかった!今は全部理解できなくても大丈夫なんだね!

デバッグツールとしてのprint()

専門家

最後に、print() の実用的な使い方について話しておくね。プログラミングをしていると、コードが思った通りに動かないことがあるんだ。そういう時、デバッグ って作業をするんだけど、print() はデバッグの強力なツールになるんだよ。

例えば、計算結果が正しいか確認したいとき、途中経過を print() で表示することで、どこで間違っているかを見つけられるんだ。

let x = 10
let y = 20
print("xの値:", x)
print("yの値:", y)

let result = x + y
print("計算結果:", result)

このように、変数の値を print() で確認しながらプログラムを書くことで、バグを見つけやすくなるんだ。プロのエンジニアも、複雑なデバッグツールと並んで、シンプルな print() をよく使うんだよ。

normalの表情
初心者

let とか変数って何?

DialogueExpert あ、ごめん。変数については次の章で詳しく説明するから、今は「値を保存する箱みたいなもの」って思っておいてもらえれば大丈夫。ここでは「print() でいろんな値を確認できるんだな」ってことだけ覚えておいてね。 ::

print()とデバッガの違い

confusedの表情
初心者

前にデバッガっていう言葉が出てきたけど、print()とは違うの?

専門家

いい質問だね。デバッガは、コードの実行を一時停止して、その時点での変数の値を詳しく調べたり、1行ずつ実行したりできる高度なツールなんだ。Xcodeにも強力なデバッガが組み込まれているんだよ。

デバッガの方が機能は豊富だけど、使い方を覚えるのに時間がかかるんだ。一方、print() は今すぐ使えて、シンプルで、コードのどこにでも簡単に追加できるっていう利点があるんだよ。

プロのエンジニアは、状況に応じてデバッガと print() を使い分けるんだ。簡単なチェックなら print()、複雑な問題ならデバッガ、みたいな感じでね。初心者のうちは、まず print() をたくさん使って慣れることが大切だよ。

happyの表情
初心者

なるほど!まずはprint()を使いこなせるようになればいいんだね!

実践練習

専門家

じゃあ、ここまで学んだことを練習してみよう。以下のような出力をするプログラムを書いてみて。

私の名前は山田太郎です
年齢は25歳です
趣味はプログラミングです

ヒント:3つの print() を使えばいいよ。

excitedの表情
初心者

やってみる!

print("私の名前は山田太郎です")
print("年齢は25歳です")
print("趣味はプログラミングです")

できた!

専門家

完璧だね!次は、自分の名前や年齢に変えて、オリジナルのメッセージを作ってみよう。自由に好きな文章を表示させてみて。プログラミングの面白さは、自分のアイデアを形にできることなんだ。

happyの表情
初心者

うん!いろいろ試してみる!

まとめ

この記事では、最初のSwiftプログラムとして「Hello, World!」を書き、print() 関数について学びました。

  • Hello, World!: プログラミング学習の伝統的な最初のプログラム
  • print()関数: コンソールに文字列や値を出力する関数
  • 文字列: ダブルクォーテーション " で囲む必要がある
  • エスケープシーケンス: \n(改行)、\t(タブ)、\"(ダブルクォーテーション)など
  • 複数行文字列: """ で囲むと複数行の文字列を書ける
  • 複数の引数: カンマ区切りで複数の値を渡せる
  • オプションパラメータ: separatorterminator で出力形式をカスタマイズできる
  • デバッグツール: print() は変数の値を確認するのに便利

次回は「コードの『メモ』と『ルール』」として、コメントの書き方とSwiftの基本的な文法ルールを学びます。コードをわかりやすく保つための大切なテクニックを身につけましょう!

← ブログ一覧に戻る