MEL合宿の7日目は、文字列を扱っていきたいと思います!(`・ω・´)ゞ
文字列
プログラムでいう文字列は、文字の並びのことです。MELで文字列を扱うには「string型」になり以下のように作ります。
string $text = “もーじーれーつー”;
数値と違い、「“(ダブルクオーテーション)」で囲まれたものが文字列になります。(一部「”」で囲まれていなくてもOKな場合があります)
文字列を作ってみよう!
前回の「「x=2」「y=3」のときの「xy+xy」の値を求めろ。」の「print」を、もう少しわかりやすくしてみたいと思います。
int $x = 2; int $y = 3; int $z = $x * $y + $x * $y; print $z;
変数「message」に「The variable $z is 」を代入します。日本語も使うことはできるのですが、トラブルの元になりやすいのでもう少し慣れてから使いましょう!(*´ω`*)b
string $message = "The variable $z is"; int $x = 2; int $y = 3; int $z = $x * $y + $x * $y; print $z;
変数「message」のprintを追加します。
string $message = "The variable $z is "; int $x = 2; int $y = 3; int $z = $x * $y + $x * $y; print $message; print $z;
すると、今まで数字だけが表示されていましたが、メッセージ性のある出力になります(`・ω・´)ゞ
ただ、メッセージの最後に「ピリオド」が無いので、文章が終わっている感じがしませんね、、、実は「print」は、変数を作らなくても表示したいメッセージを書くことができます!
string $message = "The variable $z is "; int $x = 2; int $y = 3; int $z = $x * $y + $x * $y; print $message; print $z; print ".";
文章の最後にピリオドがでたので、文章としてわかりやすくなりましたね(゚∀゚)
文字列の連結
1つのメッセージを作るのに、3回のprintをしていましたがちょっと面倒くさいですよね、、、文字列は「+(プラス)」を使うと連結していくことができます!
string $message = "The variable $z is "; int $x = 2; int $y = 3; int $z = $x * $y + $x * $y; $message = $message + $z + "."; print $message;
キチンと正しく書く場合は以下のようにキャストします。
$message = $message + string($z) + ".";
一回のprintで目的のメッセージが出せる上に、どういった文章か見ているだけで想像しやすいですねっ(*´ω`*)
実際、実用的な書き方ですと、以下のようになります!
int $x = 2; int $y = 3; int $z = $x * $y + $x * $y; string $message = "The variable $z is " + $z + "."; print $message;
変数を作らなくても可能です!
int $x = 2; int $y = 3; int $z = $x * $y + $x * $y; print ("The variable $z is " + $z + ".");
数値と混合しないように!
プログラムでは、文字としての数字と、数値としての数字は全くの別物です。例えば、コチラ!
string $a = "100"; int $b = 100;
変数「a」は文字列としての100、変数「b」は数値としての100です。もしこの2つの変数を「+」とどうなるでしょう!?2種類のパターンが考えられます。
- 文字「100」と文字「100」を連結して「100100」にする
- 数値「100」と数値「100」を足し算して「200」にする
目的に応じてキャストして、正しく目的の結果が得られるように覚えておきましょう!(`・ω・´)ゞ
string $a = "100"; int $b = 100; string $c = $a + string(b);
string $a = "100"; int $b = 100; int $d = int($a) + $b;
特殊な文字
文字列には「\(バックスラッシュ)」と組み合わせることで特別な意味になる文字があります。プログラムの構造上、この特殊な文字を使わないと入力できないものもあるので、覚えておきましょう!
特殊な組み合わせ | 意味 |
---|---|
\” | \(ダブルクオーテーション) 文字列は「”」で囲むので、文字列の中で使いたい場合はコレを使う必要があります。 「The variable $z is “12”.」としたい場合 print (“The variable $z is \”” + string($z) + “\”.”); |
\n | 改行 メッセージで改行させたい場合に使用します。 |
\t | タブ |
\\ | \(バックスラッシュ) バックスラッシュ自体特別な意味があるので、「\ 100 -(100円)」と表示したい場合は2回続けるます。 print “\\ 100 -“; |
まとめ!
- 文字列を扱えるのは「string型」
- 文字列を作るには「“(ダブルクオーテーション)」で囲う!
- 文字列に「日本語」を使うのは慣れてから!
- 文字列に対して「+」を使うと、文字列が連結する!
- printで、文字を連結したり計算する場合は「()」で囲う!
- 文字列と数値をごちゃごちゃに考えないこと!
- 「\(バックスラッシュ)」と組み合わせて「特殊な文字」が作れる!
それでは次回もお楽しみに!!(`・ω・´)ゞ