講義メモ 第4章 演算子

p.79 式と演算子

・「+」や「-」などの計算や操作を表す記号や単語を演算子という
・演算子の対象をオペランド(項)といい、演算子の種類によって用いる数が異なる
 例:「a + b」はオペランドが2つなので「2項+演算子」という
・式を計算して結果を得ることを「評価する」という
 例:2項+演算子の評価は加算結果になる
・代入の「=」も演算子であり、代入式は「2項=演算子」になっている
・2項=演算子の評価は代入値になる
 例: c = 3 + 4 とすると「3 + 4」の評価である7がcに代入され、評価は7
・演算子は基本的に左から評価されるが、「2項=演算子」のように右から評価するものもある

p.80 expression01 解説

// p.80 expression01 解説
using System;
class expression01 {
    public static void Main() {
        int a = 0;
        Console.WriteLine("a = {0}", a);
        //代入式を指定するとその評価(値)を表示できる(代入では代入値)
        Console.WriteLine("(a = 7)の値は{0}", a = 7); //7となる
    }
}

p.81 算術演算子

・2項+演算子:2項が共に数値型であれば加算結果を返す。どちらかでも文字列ならば連結結果を返す
・2項-演算子:2項が共に数値型であれば左辺から右辺を引いた結果を返す。
・2項*演算子:2項が共に数値型であれば左辺と右辺の積を返す。
・2項/演算子:2項が共に整数型であれば左辺を右辺で割った商の整数部を返す(小数点以下切り捨て)。どちらかでも実数型ならば商を返す。
 ※ 右辺の値が0だと実行時エラー、右辺が「0」だと文法エラーになる
 ※ 右辺が0.0だと∞、-0.0だと-∞になる。

p.81 add01.cs

//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"だが表示は「3.56」
        Console.WriteLine(3.5 + "6"); //連結されて"3.56"だが表示は「3.56」
        Console.WriteLine(); //改行のみ
        Console.WriteLine("(3.0 + 6)の型は{0}", 
            (3.0 + 6).GetType()); //double + int なので加算されて System.Double
        Console.WriteLine("文字列3.5 + intの6の型は{0}",
            ("3.5" + 6).GetType()); //string + int なので連結されて System.String
        Console.WriteLine("doubleの3.5 + 文字列6の型は{0}",
            (3.5 + "6").GetType()); //double + string なので連結されて System.String
    }
}

p.83 division01.cs

//p.83 division01.cs
using System;
class division01
{
    public static void Main()
    {
        Console.WriteLine("10 / 3 = {0}", 10 / 3); // int÷intなのでintで小数点以下切り捨て
        Console.WriteLine("(10 / 3)の型は{0}",
            (10 / 3).GetType()); // intなのでSystem.Int32
        Console.WriteLine("10 / 3.0 = {0}", 10 / 3.0); // int÷doubleなのでdouble
        Console.WriteLine("(10 / 3.0)の型は{0}",
            (10 / 3.0).GetType()); // doubleなのでSystem.Double
    }
}

p.84 剰余演算子

・2項%演算子:2項が共に数値型であれば左辺を右辺で割った余りを返す
 例: 1 % 0.3 ⇒ 0.1
・なお、負の数の場合、C#のルールにしたがって計算されるので注意
 ⇒ 双方を正の数にして剰余を得てから、左辺の符号を付けている
  Console.WriteLine(" 10 % -3 = {0}",  10 % -3); // 10÷-3=-3余り 1となる
  Console.WriteLine("-10 %  3 = {0}", -10 %  3); //-10÷ 3=-3余り-1となる
  Console.WriteLine("-10 % -3 = {0}", -10 % -3); //-10÷-3= 3余り-1となる
・補足:負の数の剰余算を推奨しない場合もある

p.84 mod01.cs

//p.84 mod01.cs
using System;
class mod01
{
    public static void Main()
    {
        Console.WriteLine("10 % 3 = {0}", 10 % 3); //int % int なので結果もint
        Console.WriteLine("13.53 % 2 = {0}", 13.53 % 2); //double % int なので結果はdouble
        Console.WriteLine("13.53 % 2.5 = {0}", 13.53 % 2.5); //double % double なので結果もdouble
    }
}

提出:アレンジ演習:p.84 mod01.cs

・負の数を含む剰余算を追加して試そう

作成例

//アレンジ演習:p.84 mod01.cs
using System;
class mod01
{
    public static void Main()
    {
        Console.WriteLine("10 % 3 = {0}", 10 % 3); //int % int なので結果もint
        Console.WriteLine("13.53 % 2 = {0}", 13.53 % 2); //double % int なので結果はdouble
        Console.WriteLine("13.53 % 2.5 = {0}", 13.53 % 2.5); //double % double なので結果もdouble
        Console.WriteLine("10 % -3 = {0}", 10 % -3); //10÷-3=-3余り1となるので注意
        Console.WriteLine("-10 % 3 = {0}", -10 % 3); //-10÷3=-3余り-1となるので注意
        Console.WriteLine("-10 % -3 = {0}", -10 % -3); //-10÷-3=3余り-1となるので注意
    }
}

コメントを残す

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