一部Wikiの仕様により全角文字を使っていますが、プログラムはすべて半角文字で書いてください。 変数と式プログラムはデータとそれを操作する命令から成り立っています。 プログラミング言語ではたいていの場合データを変数で表し命令を式で表します。 変数や式は数学でなじみのあるものですがプログラミング言語ではよりコンピュータに親和性の高い別の概念となっています。 (本来の数学に近い意味での変数と式を持つ言語もありますが) 変数たいていのプログラムにおいてデータを一時的に記憶しておかなければならない状況が発生します。 プログラミング言語における変数とは何かを記憶しておくための入れ物のことを指します。 しかしここで一つ問題があります。それはデータごとに必要な記憶容量、できる操作が違うことです。 例えば整数×整数はできますが、文字×文字はできません。なので変数になんでも入れることができるようにすることはできません。 そこで変数に何が入るのかを決めることにしました。これが型と呼ばれるものです。 変数にはその変数が何を入れることができるのかを表す型をつけなければなりません。 また変数には名前をつけておかなければなりません。 さて変数を構成する要素のうち変数がどういうものであるかを説明する型と名前が決まりました。 次はこの組み合わせで使用することをプログラムに書きましょう。これを変数の宣言といいます。 変数の宣言変数の宣言は式ではなく文ですこの違いについては後で説明します。 変数の宣言は
と書きます。 変数の代入次に変数に入っている値を更新する、代入を行ってみましょう。 変数への代入は
と書きます。 演習1 変数を使うLinqPadのLanguageをC#Stetment(s)にしておきましょう。 以下の文字を入力し実行しましょう。
このプログラムではintが型、aが変数名です。 ところで変数を宣言して代入をしていない状態、つまり変数の中身がわからない場合はどうなるでしょう。 (この状態を未初期化といいます。) 演習2 未初期化変数の使用LinqPadのLanguageをC#Stetment(s)にしておきましょう。 以下の文字を入力し実行しましょう。
エラーコード(CSXXXXとなっているところです)を検索してみましょう。 変数の初期化変数の宣言と代入は一緒に行われることが多いです。 そのために2つを一緒にできる初期化という機能があります。 変数の初期化は
と書きます。 初期値には式を書くことができます。 演習3 変数の初期化LinqPadのLanguageをC#Stetment(s)にしておきましょう。 以下の文字を入力し実行しましょう。
数字を扱う型ところで今までint型ばかり使ってきましたが型は他にもあります 以下はC#における整数を表す型です。
以下はC#における浮動小数点数を表す型です。(コンピュータでは無限にある実数を表すことができないのである程度妥協した数を使います)
演習4 様々な変数LinqPadのLanguageをC#Stetment(s)にしておきましょう。 以下のプログラムのようにしてすべての変数を試してみましょう。 また初期値を変えてどうなるか見てみましょう。
式式とは演算子とオペランドの列と仕様書では説明されています。 オペランドとは変数、式、リテラル(定数)演算子とはそれらを操作する記号のことです。 変数は説明済みなので、リテラルについて説明します。といっても難しいことはなくプログラムを書いたときに決まっている値のことです。 例えば演習1では10はプログラムを実行中は変更できない(無理やりできないこともないですが)値なのでリテラルです。
ここで1と1がリテラルのオペランド、+が演算子です。+演算子は数学と同じように右のリテラルと左のリテラルの合計を返します。 オペランドに式が含まれているということは式の中に式を組み込めるということです 例えば
は1+2と3がオペランドで+が演算子ということができます。 基本式基本式で行っている内容については後の項で説明します。
二項演算子二項演算子とは2つのオペランドから結果を作り出す演算子です。 例えば+は
のように1,2という式を取り3という結果を返します 演習5 二項演算子次の通りにプログラムを書いて実行してみてください。
また以下の演算子も試してみましょう
単項演算子単項演算子とは1つの式から結果を作り出す演算子です。 例えば-は
のように2という式を取り-2という結果を返します 演習6 単項演算子次の通りにプログラムを書いて実行してみてください。
また以下の演算子も試してみましょう(キャストと論理否定は除きます)
条件プログラミングをしていると真と偽の2つの値が重要な場面があります。 例えばこの式が真の時はこうする、偽の時はこうするといったようにです。 真はtrue、偽はfalseで表します。 演習7 条件次の通りにプログラムを書いて実行してみてください。
次の通りにプログラムを書いて実行してみてください。
また以下の演算子も試してみましょう。
代入演算子代入演算子は文字どうり左の変数に右の式の結果を代入し代入した値を返します。 この時にどのように変数に代入するかを選ぶことができます。 演習8 代入演算子次の通りにプログラムを書いて実行してみてください。
また以下の演算子も試してみましょう(シフトと論理は除きます)
優先順位と結合規則数学で1+2*3とした時どの順番で計算するでしょうか。 普通は2*3の後に1+をします。よって+よりも*のほうが優先されるわけです。 プログラムにもこの関係がありこれを優先順位といいます。 優先順位の高い方から順に並べています。
また1+2+3はどの順番で実行されるでしょうか。 ふつうは1+2をしてから+3とします。 このように演算子によってどの方向から計算していくかが決まっています。 これを結合規則といいます。 代入演算子と条件演算子は右から左です。たとえば、x = y = z は x = (y = z) と評価されます。 それ以外の2項演算子は左からです。たとえば、x + y + z は (x + y) + z と評価されます。 優先順位と結合規則はかっこで制御することができます。たとえばx+y*zはy*zが先に計算されますが、 (x+y)*zとするとx+yが先に計算されます。 |