Swift Playgroundsで学ぶiOSプログラミング

iPad版Swift Playgroundsの環境に慣れよう(その2)

文●柴田文彦 編集●吉田ヒロ

2016年10月31日 17時00分

結果をグラフで確認する

 ここまでの操作で、プログラムとしてはとりあえず完結します。さっそく動かしてみましょう。画面の右下近くにある「▶ Run My Code」をタップしましょう。そうしても画面には大きな変化は現れませんが、よく見ると、プログラムを入力した部分(正確にはループの内側の代入式の部分)の右側に「20x」と表示されます。前回は1つの計算式を入力した結果が数値になったので、「123」のようなボタンが表示されていた部分です。「20x」は、結果が20個あることを意味しています。iの2乗をループで20回計算したので、それを反映したものです。その「20x」の部分をタップしてみましょう。前回は数値が1つ表示されただけでしたが、今回は20個の結果の値の変化を表すグラフが表示されます。

プログラムを実行後に表示される右端の「20x」をタップすると、値の変化を描いたグラフが表示されます

エラーを確かめながらforループを編集する

 次に、このforループを編集してみましょう。まず、あえてforループの外側、その後ろに新しい文「var y = x * i」のように入力してみます。プログラミング経験をお持ちの方はおわかりかと思いますが、この行はエラーとなってしまいます。Swift Playgroundsでは、エラーのある行の先頭部分に、大きめの赤丸が表示されます。

forループの後ろに「var y = x * i」と入力するとエラーとなり赤丸が表示されます

 このエラーの理由を知るには、その赤丸をタップします。すると、その行の下に簡単なエラーメッセージが吹き出し状に表示されます。「Use of unresolved identifier 'x'」というのは、直訳すれば「解決できない識別子xが使用された」となります。

エラーを表す赤い丸をタップすると、そのエラーが発生した理由を示すメッセージが表示されます

 この吹き出しの内側をよく見ると、メッセージの上に濃さの異なるグレーの丸印が2つ並んでいます。これは、もう1つメッセージがあるという意味です。メッセージ部分を横にスワイプすると、もう1つのメッセージの表示に切り替わります。それも同様で、平たく言えば「iなんて変数知らないよ」というものです。

 実はこの行は、本来forループの内側に書くべきものなのです。ループの中で宣言した変数xも、ループの外では無効ですし、ループの回数を数えるカウンターのiも、当然ながらループの内側だけで有効です。そこで、この行をループの内側に移動しましょう。ここで、Swift Playgroundsならではの編集機能を使います。まず、forループの枠を選択するために、「for」の部分をタップします。すると、ループの先頭と末尾の行が赤いハイライト表示になり、その間が細い縦線で結ばれます。

「for」の部分をタップして、forループの「枠」を赤くハイライトさせます

 さらによく見ると、ループの末尾の「}」の後ろになぜか「‥」という表示が追加されました。実はこれは一種のハンドルです。ここをドラッグして動かせますよ、というマークなのです。そこで、そこの部分をドラッグして下方に移動し、その下にある「var y = x * i」の行を飲み込んでしまいましょう。

ハイライトしてforループの末尾の「}」の後の「‥」部分を下にドラッグして、外にあった行を中に取り込みます

 これで、ループの中には2つの行が入りました。それと同時にエラーの赤マークも消えたはずです。この2つの式では、変数xにiの2乗を、変数yにはiの3乗(iの2乗にさらにiを掛けたもの)を代入することになります。このプログラムを走らせると、式が2つなので、右端の「20x」も縦に2つ並びます。下の「20x」をタップして、結果をグラフ表示させてみましょう。

forループの内側に入れた2つの式に対応して2つの「20x」が表示されるので、下の「20x」をタップして結果を確認します

 これだけでは2つの式の違いがはっきりしません。iの値の変化が正の範囲(1〜20)だけなので、2乗と3乗の差が大きくないからです。そこで、forループの範囲を変更して、負の範囲も含むようにしてみましょう。それには、forループの先頭の「for i in 1 ... 20」の「1」の部分をタップします。すると「1」がハイライト表示されると同時に、その下におなじみのテンキーパッドが現れます。こんどはキーの上にあるつまみをドラッグして値を変化させてみましょう。左方向に回すと値が減っていきます。ちょうど2周ほど左に回すと「-20」になるでしょう。

forループのカウンターの初期値の「1」をタップしてハンドルを操作し、「-20」に設定します

 この結果、forループは、-20から20まで、0を含んで41段階に変化するようになりました。結果をグラフで確認しましょう。「41x」の部分をタップした後、表示されるグラフの下の「Add viewer」をタップして、プログラムの中にグラフを埋め込みます。これで、2乗と3乗の違いもはっきりわかりました。グラフは、それぞれの式の下に別々に表示され、明示的に消す操作をしないと、ずっとそのままになります。

2つの式それぞれの結果をグラフ表示し、さらに「Add viewer」をタップして、グラフをプログラム中に埋め込みました

次回の予定

 今回までで、iPad版のSwift Playgroundsの操作にもだいぶ慣れてきたでしょう。次回からは、Xcode版を使っていた回では学ばなかった内容にも徐々に踏み込みつつ、さらにSwift Playgroundsの魅力にせまっていく予定です。

mobileASCII.jp TOPページへ

mobile ASCII

Access Rankingアクセスランキング