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参照)、小さい方を表示しよう