使用 ? : 表达式比较三个数大小并对其排序,C#的代码怎么写
------------------------------------------------------------------------下面是错误的示范
设置A,B,C三个整型数字,使用 Random.Range函数来对这3个数字赋值
如下所示:
a = Random.Range(0, 100);// a
b = Random.Range(0, 100 - a);// b
c = 100 - a - b;//c
string classify = ((Mathf.Abs(a - c)) > (Mathf.Abs(b - c))) ? "A" : ((b > c) ? "B" : "C");//3个数字中的最 大 值
string classify1 = ((Mathf.Abs(a - c)) < (Mathf.Abs(b - c))) ? "A" : ((b < c) ? "B" : "C");//3个数字中的最 小 值
Debug.Log(classify + classify1);
//这个是找到3个数值中的最大值
--------------------------------------------------------------------下面是正确的代码以及 逻辑 思路
void JudgeMaxMiddleMin()
{
//int a, b, c;
a = Random.Range(1, 100);// a
b = Random.Range(1, 100 - a);// b
c = 100 - a - b;//c
//round (a > b ? a:b)
//triangle (a < b ? a :b)
int max = ((a > b ? a : b) > c ) ? (a > b ? a : b) : c;//大Max = round > c ? round : c
int middle = ((a > b ? a : b) > c) ? ((a < b ? a : b) > c ? (a < b ? a : b) : c) : (a > b ? a : b);//中Middle = round > c ? ( triangle > c ? triangle : c) : round
int min = ((a > b ? a : b) > c) ? ((a < b ? a : b) > c ? c : (a < b ? a : b)) : (a < b ? a : b);//小Min = round > c ? ( triangle > c ? c : triangle) : triangle
Debug.Log(" Max "+max +" Middle "+ middle + " Min " + min);
Debug.Log(" A " + a + " B " + b + " C " + c);
}
逻辑图如下所示:
首先a和b进行数值比较,其结果再和c进行比较。把逻辑转换为?:表达式即可
(大图)
--------------------------------------------------------------------
参考资料:
1.C#怎么比较三个数的大小并按从大到小的顺序输出?要用if语句.
2.
c#中比较三个数的大小
3.
用c#比较三个数的大小,并输出最大数。
4.
C#之三个数排序and求平均值+按值传递与按引用传递
5.
6.
7.