[BASICのはじめ方] Part9: PRINTとINPUTによる画面入出力

はじめに

プログラムが役立つためには、情報を表示したり、ユーザーから情報を受け取ったりする必要があります。BASICでは、この基本的な「入出力」を担うのが PRINT 文と INPUT 文です。これらは、あなたが作るプログラムとユーザーをつなぐ、とても大切な命令なんですよ!🤝

このステップでは、画面に文字や計算結果を表示する PRINT 文と、キーボードから文字や数値を受け取る INPUT 文の使い方を学びます。さっそく見ていきましょう!🚀

画面に表示する:PRINT文

PRINT 文は、指定した文字(文字列)や変数の中身、計算結果などを画面に表示するための命令です。一番基本的な使い方を見てみましょう。

PRINT "Hello, BASIC World!"

これを実行すると、画面に Hello, BASIC World! と表示されます。簡単ですね!😊 文字列を表示したい場合は、" "(ダブルクォーテーション)で囲むのを忘れないでください。

数値や計算結果も表示できます。

PRINT 123
PRINT 10 + 5

上から順に 12315 が表示されます。数値の場合は " " で囲む必要はありません。

変数の中身を表示することももちろん可能です。

A = 100
B$ = "テスト"
PRINT A
PRINT B$

実行すると、100テスト がそれぞれ改行されて表示されます。

PRINT文の区切り文字:`,` と `;`

PRINT 文では、カンマ , やセミコロン ; を使って、複数の項目を続けて表示させることができます。これらの区切り文字には、表示するときの間隔(タブ位置)に違いがあります。

区切り文字 動作 表示結果 (イメージ)
, (カンマ) 次の項目を、あらかじめ決められた「タブ位置」(通常は10~16文字ごとなど、処理系によります)まで移動して表示します。
PRINT "Apple", "Banana", "Cherry"
Apple Banana Cherry
; (セミコロン) 次の項目を、直前の項目のすぐ後ろに続けて表示します。(数値の場合は、符号用のスペースが自動で入ることがあります)
PRINT "Apple"; "Banana"; "Cherry"
AppleBananaCherry
(なし) PRINT文の最後に区切り文字がない場合、表示後に自動的に改行します。
PRINT "Line 1"
PRINT "Line 2"
Line 1
Line 2
行末の ; PRINT文の最後にセミコロンを付けると、表示後に改行しません。次のPRINT文の表示が同じ行に続きます。
PRINT "続けるよ";
PRINT "!"
続けるよ!

これらの区切り文字をうまく使うことで、表示のレイアウトを調整することができます✨

キーボードから入力:INPUT文

INPUT 文は、プログラムの実行中にユーザーからのキーボード入力を待ち、入力された値を指定した変数に格納するための命令です。これにより、プログラムが対話的になります🗣️。

基本的な使い方は次の通りです。

INPUT A

これを実行すると、プログラムは一時停止し、画面に ? マークが表示されて入力待ちの状態になります。ユーザーが何か数値を入力して Enter キーを押すと、その値が変数 A に格納され、プログラムの続きが実行されます。

文字列を入力してもらいたい場合は、文字列変数(通常は $ が付く変数名)を指定します。

INPUT N$

実行すると同様に ? が表示され、ユーザーが入力した文字列が変数 N$ に格納されます。

プロンプトメッセージの表示

ただ ? が表示されるだけだと、ユーザーは何を入力すればいいか分かりにくいですよね🤔。INPUT 文では、入力待ちの前にメッセージ(プロンプト)を表示させることができます。

INPUT "お名前を入力してください: "; N$
PRINT "こんにちは、"; N$; "さん!"

これを実行すると、まず画面に お名前を入力してください: と表示され、その隣に入力待ちカーソルが表示されます。ユーザーが名前を入力して Enter を押すと、その名前を使って挨拶が表示されます。

プロンプト文字列の後に ;(セミコロン)を付けると、? マークは表示されず、カーソルがメッセージの直後に表示されます。,(カンマ)を付けると、メッセージの後に ? が表示されます(処理系によって挙動が異なる場合があります)。多くの場合、; を使う方が自然でしょう。

複数の入力

INPUT 文では、カンマ , で区切ることで、一度に複数の変数への入力を求めることもできます。

INPUT "カンマ区切りで数値と名前を入力: ", A, N$
PRINT "数値:"; A
PRINT "名前:"; N$

実行するとプロンプトが表示され、ユーザーは 123,Taro のようにカンマで区切って入力する必要があります。入力された値が、それぞれ変数 AN$ に格納されます。

注意点: INPUT 文で数値を期待しているところに文字列を入力したり、その逆を行うとエラーになることがあります。また、複数の入力を求める際に、指定された数の値を正しくカンマ区切りで入力しない場合もエラーや予期せぬ動作の原因となります。

実践!PRINTとINPUTを使った簡単な対話プログラム

それでは、PRINTINPUT を使って、簡単な対話プログラムを作ってみましょう。年齢を尋ねて、簡単なメッセージを返すプログラムです。

PRINT "*** かんたん年齢応答プログラム ***"
PRINT

INPUT "あなたの名前を教えてください: "; Namae$
INPUT "あなたの年齢を教えてください: "; Nenrei

PRINT
PRINT "こんにちは、"; Namae$; "さん!"
PRINT Nenrei; "歳なんですね。"

IF Nenrei < 20 THEN
  PRINT "若いですね!未来が楽しみです!✨"
ELSEIF Nenrei >= 20 AND Nenrei < 60 THEN
  PRINT "働き盛りですね!頑張ってください!💪"
ELSE
  PRINT "人生のベテランですね!ゆっくり楽しんでください🍵"
END IF

PRINT
PRINT "プログラムを終了します。"

このプログラムは、まず名前と年齢をユーザーに尋ねます(INPUT)。そして、入力された名前と年齢を使って挨拶し(PRINT)、年齢に応じて異なるメッセージを表示します(IF...THEN...ELSEIF...ELSEPRINT)。

ぜひ、これをあなたの環境で入力して実行してみてください!実際に動かしてみるのが一番の勉強になりますよ😉

まとめ

今回は、BASICの基本的な入出力命令である PRINT 文と INPUT 文について学びました。

  • PRINT: 文字列や数値、変数の中身を画面に表示する。,; で表示位置を調整できる。
  • INPUT: ユーザーからのキーボード入力を変数に格納する。プロンプトメッセージを表示できる。

これらの命令は、ほとんどのプログラムで使うことになる、非常に重要な基本要素です。使い方をしっかりマスターして、対話的なプログラム作りに挑戦していきましょう!🎉 次は文字列操作について学んでいきます。

参考情報

BASICの命令は、処理系(QBasic, FreeBASIC, etc.)によって細かい動作や使える機能が異なる場合があります。もし特定の処理系について詳しく知りたい場合は、その処理系のドキュメントを参照することをお勧めします。