C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#の条件式における数値昇格(Numeric Promotion)とは

数値昇格(Numeric Promotion)とは

数値昇格とは、short型からint型のように、より小さいデータ型が自動的により大きいデータ型へと変換される仕組みのことです。C#では、異なる型が混在する式を評価する際に、この昇格が暗黙的に行われます。

特に三項演算子(条件演算子 ? :)を使った条件式では、第2オペランドと第3オペランドの型が統一される必要があるため、小さい型は自動的に大きい型へ昇格されます。

条件式での数値昇格の例

次のサンプルコードでは、条件式の中でshort型が自動的にint型へ昇格される様子を確認できます。

using System;

class Program {
   static void Main() {
      short val1 = 99;
      int val2;

      val2 = (val1 == 1) ? 100 : 30;

      Console.WriteLine(val2);
   }
}

実行結果

30

コードの解説

上記のプログラムでは、次の条件式が使用されています。

val2 = (val1 == 1) ? 100 : 30;

ここで、val2int型val1short型 として宣言されています。条件式の評価時には、リテラルや比較結果がint型として扱われるため、short型である val1 も自動的にint型へ昇格されてから比較が行われます。

このように、C#の条件式では小さい型から大きい型への暗黙的な昇格が働くため、開発者が明示的にキャストを記述しなくても、安全に型の整合性が保たれるのが特徴です。

  1. C言語でアームストロング数を判定するプログラムの作成方法

    アームストロング数とは? 本記事では、入力された整数 n がアームストロング数(Armstrong number)であるかどうかを判定するCプログラムについて解説します。 アームストロング数とは、各桁の数字をそれぞれ「桁数(位数)」でべき乗し、その総和が元の数値と等しくなる数のことです。例えば、4桁の数 1634 は 14 + 64 + 34 + 44 = 1 + 1296 + 81 + 256 = 1634 となるため、アームストロング数です。 アームストロング数を求める基本的な考え方は、次の式のように表せます。 計算式: wxyz…. = pow(w, n) + pow(x, n) + p

  2. C++で非連結グラフに対するBFS(幅優先探索)を実装する方法

    非連結グラフとは非連結グラフ(disconnected graph)とは、グラフ内の1つ以上の頂点が他の頂点と辺でつながっておらず、どこかの頂点から出発しても到達できない頂点が存在するグラフのことです。このようなグラフは、複数の「連結成分(connected component)」に分かれている状態と捉えることができます。通常のBFSでは不十分な理由単純な幅優先探索(BFS: Breadth First Search)が正しく機能するのは、グラフが連結している場合、すなわちグラフ内のすべての頂点がある1つの頂点から到達できる場合だけです。非連結グラフでは、開始頂点から到達できない頂点が必ず存在