OriosのActiveBasic講座(1-1):入出力

2.文字列の出力

【目標】画面に文字を表示させることができるようになりましょう。

前回は数字をうまく出力できたでしょうか? 数字が実際に出てきたときは感激したのではないのでしょうか? 自分も初めて打ち込んだプログラムを実行したときは感激していました。

でもまだ表示させるものに物足りなさを感じている人もいるのではないでしょうか? そうです。まだ文字を表示させていないのです。 ということで、今回はその文字の表示のしかたをやります。 前回と同様に、早速次のプログラムを実行してみましょう。

'lesson1-1-2
#console
Print "HelloWorld!"
Print "My name is ....";
Print "I'm ... years old."
Sleep(3000)
End

実行すると次のようなウィンドウが表示されます。

C:\ActiveBasicCourse\lesson1-1-2.abp
HelloWorld!
My name is ....I'm ... years old.

では今回のプログラムの説明に入ります。 今回は文字の表示と表示のバリエーションについてやります。 ではしっかり集中して説明を読んでください。 (でも集中しすぎて目を悪くしないようにしてくださいね。)

-*-*-*-*-説明-*-*-*-*-
【使い方】
Print "文字列 "
【意味】
「"」(ダブルクォーテーション)で囲まれた文字を表示します。
【解説】
文字は「"」で囲む!
(i) この前は数字の表示を説明しました。Printの後に表示したい数字を書けばよかったですね。 そして今回はアルファベットや漢字などの「文字」を表示の仕方をやるわけですが、数字のときと違うのは「"」で表示したい文字を囲むということです。 また、数字でも「Print "123"」のように「"」で囲んで表示することができます (その場合内部的な扱われ方が異なりますが、それは後ほど説明します)。 とにかく文字を表示するときは「"」で囲むのです。
(ii) なぜ文字を「"」で囲まないといけないか? その一番大きい理由は紛らわしいからです。 たとえばプログラムの中に「Print」という記述があったとします。 皆さんはこれを「画面に文字を表示させろ」という命令だと思いますね。 でも本当にそうでしょうか? こう言われると不思議に思うかも知れませんがよく考えてください。 もしこれが「Print」いう文字を表示したくて「Print Print」書いていたとしたらどうでしょう。 命令なのかただの文字なのか非常に紛らわしいですね。 ActiveBasicをはじめプログラミング用のソフトを作る側にとってはこんなことの区別するプログラムを作るのは大変です。 そこでこれを解決するために「文字列は『"』で囲もう」ということを昔誰かが決めたのです。 それが引き継がれて今はたいていの言語がこのルールに従っています。 ということで「文字列は『"』で囲む」と覚えてください。 (ちなみに囲まないとエラーが出ます。)
【使い方】
Print 表示させるもの ;
【意味】
次に「Print」で表示する文字を改行せずに続けて表示させます。
【解説】
改行のコントロール
( ) 「Print」は通常、改行しながら表示していきます。 なので冒頭のプログラムでは「HelloWorld!」と「My name is ....」は改行されています。 しかし改行したくないときもあると思います。 そのようなときどうすればいいのでしょうか? 答えは「;」です。 これを「Print 表示させるもの ;」のように最後につけてやると、次の「Print」で表示されるものは改行されずに続けて表示されます。 なので冒頭のプログラムでは「My name is ....」と「I'm ... years old.」は改行されずに続けて表示されています。

ここからはコラムです。難しい内容もありますので理解できる範囲で読んでください。

-*-*-*-*- (コ)(ラ)(ム) -*-*-*-*-
【文字列と数字】

説明のところで「数字でも『Print "123"』のように『"』で囲んで表示することができます」と説明しましたが、では「123」と「"123"」はどう違うのでしょうか? さあ、みんなで考えよう! (……昔「クイズ世界は SHOW by ショーバイ!!」という番組で使われていたような……。 自分の場合新装開店<←番組のリニューアル>前の「ミリオンスロット」が結構気に入ってましたね。) 管理人の個人的な話の間に答えを考えてくださいましたでしょうか? 答えは「『123』はそのまま数字として扱われますが『"123"』は"123"という文字として扱われる」です。 ……と言ってもこれだけでは分からないと思うので具体的に説明します。 例えば「123」の場合、これは「単なる数字」として扱われます。 なので「2147483648」のようなコンピューターで扱えないような大きな数を表示させようとしても意図したとおりに表示されません (「ActiveBasic 3.09」では表示されません)。 また「Print」では関係ありませんが、次のレッスンでやるように「1 + 1」のように計算させることもできます。 しかし「"123"」の場合、これはあくまで"123"という文字列として扱わます。 なので"123456789012345678901234567890"と表示させようとしたときに「"」で囲まなかったときのように指数で表現されることはなく、ちゃんと"123456789012345678901234567890"と表示されます。 また単なる文字なので数字のように「"1" + "1" = "2"」のようなこともできません。 以上いろいろと書きましたが、とにかく「123」と「"123"」は違うのです。

では一通り学んだところで実際に自分でプログラムを作ってみましょう。

-*-*-*-*- -*-*-*-*-

次の文字を表示させてみましょう。

  • 「私の名前は○○です。」
  • 「Print 123」
  • (数字の)「123」と(文字列の)"123"を並べて

ご質問・ご意見・ご感想・苦情等はメールまたはメイン掲示板のActiveBasic板などでお気軽にどうぞ。

前に戻る - 次に進む

ホーム > OriosのActiveBasic講座(トップページ) >