講義メモ 後半

p.85 インクリメント演算子、デクリメント演算子

・単項++演算子:「変数 = 変数 + 1」を「変数++」または「++変数」と記述でき、インクリメント演算子ともいう。
・「++変数」を前置インクリメント演算子、「変数++」を後置インクリメント演算子という
・前置と後置は単独で行う場合は同じ意味だが、評価のタイミングが異なる
・前置の場合:1を足しこんで、その結果を評価とする
・後置の場合:現在の値を評価としてから、1を足しこむ
・例: int i = 10; Console.Write(++i); Console.Write(i); //11 11となる
・例: int i = 10; Console.Write(i++); Console.Write(i); //10 11となる
・C#では実数型変数にも利用可能で、1.0が加算される
・単項--演算子:「変数 = 変数 - 1」を「変数--」または「--変数」と記述でき、デクリメント演算子ともいう。動作は「++」と同様

アレンジ演習:p.86 increment01.cs

・「a++ + 10」と「++b + 10」がどうなるかも確認しよう

作成例

//アレンジ演習:p.86 increment01.cs
using System;
class increment01
{
    public static void Main()
    {
        int a = 10;
        Console.WriteLine(a++); //aの値を表示(10)してから+1してaは11になる
        Console.WriteLine(a); //aの値は11になっている(11)
        //【以下追加】
        Console.WriteLine(a++ + 10); //aは11なのでa+10の21を表示してから+1してaは12になる
        Console.WriteLine(a); //aの値は12になっている(12)

        int b = 10;
        Console.WriteLine(++b); //bに+1してbは11になり、それから表示(11)
        Console.WriteLine(b); //bの値は11になっている(11)
        //【以下追加】
        Console.WriteLine(++b + 10); //bに+1してbは12になり、それから+10して表示(22)
        Console.WriteLine(b); //bの値は12になっている(12)
    }
}

アレンジ演習:p.87 increment02.cs

・char型変数、string型変数、bool型変数をインクリメント、デクリメントできるかも確認しよう

作成例

//アレンジ演習:p.87 increment02.cs
using System;
class increment02
{
    public static void Main()
    {
        double a = 1.25;
        decimal d = -12.3M;
        Console.WriteLine(++a); //double型の1.0を加算し2.25
        Console.WriteLine(--d); //decimal型の-1.0Mを加算し-13.3Mになり、表示は-13.3
        //【以下追加】
        char c = 'a';
        Console.WriteLine(++c); //'b'(文字コードで次の文字になる)
        string s = "ABC";
        //Console.WriteLine(++s); //文法エラー
        bool b = true;
        //Console.WriteLine(++b); //文法エラー
    }
}

p.88 関係演算子

・値の大小関係によりbool型(p.57)の戻り値を返す演算子の総称
・2項==演算子:左辺と右辺の値が等しければtrue、でなければfalse
 ※「= =」はNG(途中に空白は不可)
・2項!=演算子:左辺と右辺の値が等しければfalse、でなければtrue
 ※「! =」はNG(途中に空白は不可)逆の「=!」はNG
・2項>=演算子:左辺の値が右辺の値以上ならばtrue、でなければfalse
 ※「> =」はNG(途中に空白は不可)逆の「=>」はNG
・2項<=演算子:左辺の値が右辺の値以下ならばtrue、でなければfalse
 ※「< =」はNG(途中に空白は不可)逆の「=<」はNG

ミニ演習 mini088a.cs

・bool型の変数aに式「10 == 8 + 2」の評価を初期値として与えて、表示してみよう
・bool型の変数bに式「1 + 3 != 4」の評価を初期値として与えて、表示してみよう

作成例

//ミニ演習 mini088a.cs
using System;
class mini088a
{
    public static void Main()
    {
        bool a = (10 == 8 + 2); //関係演算式の評価を初期値として与える
        Console.WriteLine(a); //True
        bool b = (1 + 3 != 4);  //関係演算式の評価を初期値として与える
        Console.WriteLine(b); //False
    }
}

p.88 条件演算子

・C#では唯一の3項演算子で、制御構造を演算子で実装できる
・書式: bool型の式 ? 式がTrueの場合の値や式 : 式がfalseの場合の値や式
・「:」の前後のどちらかだけが実行されるので「もしも●なら▲をでなければ■を」という構文になる
例: Concole.Write(a > 0 ? "正の数" : "正の数ではない");
例: int max = (a > b) ? a : b; //aとbの大きい方をmaxに代入
・つまり、分岐構造を演算子で表現したもの
・一般に誤読防止の為にbool型の式をカッコで囲むことが多い
・なお、bool型の式は変数でも良い
例: 
 bool x = a > b; //xにはa>bならtrue、でなければfalseが入る
 int max = (x) ? a : b; //xにより、どちらが大きいか分かるので、大きい方をmaxに代入
・ただし「:」以降は省略不可なので「でなければ●を返す」が必須なので注意。

ミニ演習 mini088b.cs

・コンソールから2つの整数を入力して変数aとbに代入し(p.46参照)、大きい方を表示しよう

作成例

//ミニ演習 mini088b.cs
using System;
class mini088a
{
    public static void Main()
    {
        Console.Write("a : ");
        int a = int.Parse(Console.ReadLine());
        Console.Write("b : ");
        int b = int.Parse(Console.ReadLine());
        int max = (a > b) ? a : b; //aとbの大きい方をmaxに代入
        Console.WriteLine("大きい方は{0}", max);
    }
}

提出:ミニ演習 mini088b.cs・改造

・コンソールから2つの整数を入力して変数aとbに代入し(p.46参照)、小さい方を表示しよう

コメントを残す

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