これで変数は自由自在!C++ 変数の範囲とブロック!!

C++
スポンサーリンク

みなさんは、プログラミングを勉強していると”変数”という言葉を聞くことがあると思います。そしてこの変数をより簡単にかつ自由に扱えるように変数の範囲とブロックについて書いていこうと思います。

もし変数??何それ?という方は、こちらの記事が参考になると思います。

 

変数の範囲とブロック!

ブロックとは{}で囲われた部分です。

int main() {
/*ここがブロックです!*/
}

そして変数の範囲というのは、変数を書いてからそのブロックが終わるまでです。↓↓のコードで言うとmain 関数の「{」から「}」までになります。

int main() {
 int M = 33 /*ここが変数の範囲*/
}

 

変数の範囲が理解できると・・・

変数の範囲が理解できると。

int main() {
  int K = 10;

  if (K == 5) {
    int S = 10;
    cout << x + S << endl;

  }

  if (x == 10) {
    string S = "カラスク";
    cout << x << S << endl;
  }
}

こんな感じで同じ名前の変数を使えたりします。

カラスク
カラスク

え?同じ名前の変数使ってる!?

確かに同じ名前の変数を使っています。しかし、変数の範囲が異なるので問題ないのです!1つ目のif関数のブロックの中で変数x は5!しかし2つ目のif関数ではブロックが異なるので、同じ名前の関数が使えるのです!

図解するとこんな感じです

ちょっと難しい話

もし変数の範囲が重なっていると、どうなるか。ということを話していきます!

int main() {
  int x = 3;
  cout << x << endl; 
 
  if (x == 3) {
    cout << x << endl;
 
    string x = "カラスク";

 cout << x << endl;
}
 cout << x << endl;
  }

 このプログラムを実行すると・・・

3
3
カラスク
3

 

少し理解が難しいと思いますので、また図を用意しました!!

if関数で 変数 x = “カラスク” になりますが。if関数のブロックが終わると元に戻るので変数x = 3 となります。

 このように範囲が理解できると、同じ名前の変数を使えるようになり、変数の宣言が楽になります!

別に変数の範囲を知らなくてもいい?

変数の範囲を学ぶと・・・

カラスク
カラスク

変数の名前を変えれば、範囲なんてどうでもいいんじゃ・・

と考えるかもしれません。全くその通りです。私自身も範囲に関してあまり気にしたことはありません。ただ変数の範囲を知らないともっと複雑なコードを書く際に違う名前の変数をいちいち考えないといけなくなります。

ですので、変数の範囲は知っておいて損はありません。

また変数の範囲がないと同じ名前の変数が使えなくなってしまうので、コードを書くには必須のシステムです! 

 

まとめ

・{}の部分をブロック。

・変数の範囲は、変数を書いてからブロック終わるまで

・変数の範囲が分かると同じ名前の変数を扱える!

っとこんな感じで終わります

最後までご清覧ありがとうございました。

コメント

タイトルとURLをコピーしました