前のプログラムの説明が終わっていませんでした。
前のプログラムは、以下の通り。青い文字がまだ説明していないところです。
#include <iostream>
#include <string>
int main () {
std::cout << "名前を入れてください。" << std::endl;
std::string name;
std::cin >> name;
std::cout << name << "さん、ですね。" << std::endl;
return 0;
}
nameというのが文字列の変数だというのは前回言いました。
その変数に、キーボードからの入力を入れるのが、
std::cin >> name;
です。
プログラムを少しだけ書き換えてみました。
#include <iostream>
#include <string>
int main () {
std::cout << "名前を入れてください。" << std::endl;
std::string name;
std::cin >> name;
name = "じゅげむ";
std::cout << name << "さん、ですね。" << std::endl;
return 0;
}
これを実行すると、次のようになります。
名前を入れてください。
ふじお (return)
じゅげむさん、ですね。
せっかく名前を入れたのに、コンピュータはとんちんかんな答えを返しています。
それは name = "じゅげむ";というのをいれたからです。
name = "じゅげむ";
というのは、nameという文字列変数に「じゅげむ」という文字列を入れるという意味です。
ここで大事なのは、この=という記号ですね。
算数で=ってのは「等しい」という意味だと習ったと思います。
1+1=2
とかね。
ところが、C++では等しいという意味ではありません。=の左に右を入れる、という意味です。
別のプログラミング言語では:=などと書いて、=じゃないことを強調しているものもありますが、C++では=と簡単に書いてしまいます。
ちょっとだけ寄り道をして、C++の背景にある考え方について書いてみます。
さっきの、=みたいに、簡単に書く、というのは、いかにもC++らしいやりかたです。というか、C言語の考え方です。C++はCの従兄弟みたいなものなので、C言語の書き方も多くそのまま使っています。
C言語は、すごくせっかちなプログラミング言語で、とにかく「短く!簡潔に!」書くのが良いっていうのがあります。たとえば、(double *)((*(a[0]->b)+c).d) とか、なんですかこれは!?というような書き方をしたりします。
C++には、Cにはない、ある別の考え方(オブジェクト指向)が入っていて、「短く書かなくてもいいじゃん、わかりやすければ」という考えが混じっていますが、C言語をもとにしているので、基本の考え方は、「短く!簡潔に!」です。だから、けっこう慣れるのには、時間がかかると思います。
もとに戻って、=の使い方をもうすこし。
=は右のものを左に入れるという意味でした。
name = "じゅげむ";
の右側を説明します。文字列は"(ダブルクォーテーション)で囲んて表します。
"じゅげむ"とか、"Hello, World!"とか、"こんにちは!"とかですね。"で囲まないとエラーになります。なぜかというとプログラムの一部と間違うからです。
次へ続く!
コメントをかく