講義メモ 第4章 演算子

p.79 式と演算子

・「+」や「-」に代表される計算や操作を表す記号を演算子という
・「typeof」「new」などのような単語の演算子もある
・演算子の対象をオペランド(項)といい、演算子の種類により数が異なる
・例:「a + b」はオペランドが2つなので、2項+演算子という
・0個以上の演算子とオペランドを合わせたものを式という(よって変数1個のみのものも式)
・式を計算して結果を得る事を「評価する」といい、結果の値を「評価」という
・例:式「a + b」の評価はaとbの和
・なお、「=」は代入演算子ともいい、2項=演算子。
・2項=演算子の評価は代入値となる。
・例:式「c = 3 + 4」は2項+演算子の評価7が変数cに代入され、式全体の評価も7になる
・これで分かるように、通常の式は左から評価されるが、代入演算子は右から評価される

アレンジ演習:p.80 expression01.cs

・式「(a = 3 + 4)」の評価も7になることを確認しよう

作成例

//p.80 expression01.cs
using System;
class expression01 
{
    public static void Main() 
    {
        int a = 0;
        Console.WriteLine("a = {0}", a); //「a = 0」
        Console.WriteLine("(a = 7)の値は{0}", a = 7); //「(a = 7)の値は7」
        //【以下追加】
        Console.WriteLine("(a = 3 + 4)の値は{0}", a = 3 + 4); //「(a = 3 + 4)の値は7」
    }
}

p.81 算術演算子

・2項+,-,*,/,%演算子と、単項++,--演算子を合わせて算術演算子という
・2項+,-,*,/,%演算子のルール:(下記にあてはまらければエラーになる)
2項+演算子:2項が共に数値であれば加算結果を返す。どちらかまたは両方が文字列であれば連結結果の文字列を返す。
2項-演算子:2項が共に数値であれば左辺から右辺を引いた結果を返す。
2項*演算子:2項が共に数値であれば左辺と右辺の積を返す。
2項/演算子:2項が共に整数であれば左辺を右辺で割った結果の整数部を返す。実数であれば左辺を右辺で割った結果を返す。
 ※「整数 / 0」は異常終了となる。
 ※「正の実数 / 0」は「∞」(無限大)「負の実数 / 0」は「-∞」となる。
 ※ なお、0.0は実数扱い

アレンジ演習:p.81 add01.cs

・下記の組み合わせを2項+演算子に与えるとどうなるかも試そう。エラーにならない場合は結果の型を確認しよう
 ①整数リテラルと文字リテラル
 ②文字リテラルと文字リテラル
 ③文字列リテラルと文字リテラル
 ④整数リテラルと論理値リテラル

作成例

//p.81 add01.cs
using System;
class add01
{
    public static void Main()
    {
        Console.WriteLine(3 + 6); //加算で9
        Console.WriteLine(3.0 + 6); //加算で9.0(表示は9)
        Console.WriteLine("3.5" + 6); //連結で"3.56"
        Console.WriteLine(3.5 + "6"); //連結で"3.56"
        Console.WriteLine(); //改行
        Console.WriteLine("(3.0 + 6)の型は{0}", (3.0 + 6).GetType()); //Double
        Console.WriteLine("文字列3.5 + intの6の型は{0}", ("3.5" + 6).GetType()); //String
        Console.WriteLine("doubleの3.5 + 文字列6の型は{0}", (3.5 + "6").GetType()); //同
        //【以下追加】
        Console.WriteLine("整数3 + 文字'A' → {0}", 3 + 'A'); //加算で68(Aの文字コードは65)
        Console.WriteLine("型は{0}", (3 + 'A').GetType()); //Int32となる
        Console.WriteLine("文字'A' + 文字'B' → {0}", 'A' + 'B'); //加算で131(文字コードで計算)
        Console.WriteLine("型は{0}", ('A' + 'B').GetType()); //Int32となる
        Console.WriteLine("文字列\"AB\" + 文字'C' → {0}", "AB" + 'C'); //連結で"ABC"
        Console.WriteLine("型は{0}", ("AB" + 'C').GetType()); //Stringとなる
        //Console.WriteLine("整数10 + 論理値True → {0}", 10 + true); //(未定義)エラー
    }
}

アレンジ演習:p.81 add01.cs 続き

・下記の組み合わせを2項+演算子に与えるとどうなるかも試そう。エラーにならない場合は結果の型を確認しよう
 ①実数リテラルと文字リテラル
 ②論理値リテラルと論理値リテラル
 ③論理値リテラルと文字リテラル
 ④文字列リテラルと論理値リテラル

提出:アレンジ演習:p.81 add01.cs 続き

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です