15.条件运算符

15.运算符-条件运算符


15.1 知识点

条件运算符的基本应用

比较运算符

条件运算符用于比较两个变量或常量,主要包括以下比较运算符:

  • 大于(>
  • 小于(<
  • 等于(==
  • 不等于(!=
  • 大于等于(>=
  • 小于等于(<=

示例:

int a = 5;
int b = 10;

bool result;
result = a < b; // true
result = a >= b; // false
result = a <= b; // true
result = a == b; // false
result = a != b; // true

各种应用写法

条件运算符可以应用在不同的情况,包括变量和变量比较、变量和数值比较、数值和数值比较以及计算结果的比较。

示例:

int a = 5;
int b = 10;
bool result;

// 变量和变量比较
result = a < b; // true

// 变量和数值(常量)比较
result = a < 10; // true
result = b > 5; // true

// 数值和数值比较
result = 5 > 3; // true
result = 5 == 3; // false
result = 5 != 3; // true

// 计算结果比较
result = a + 3 > a - 2 + 3; // true
result = 3 + 3 < 5 - 1; // false

范围比较

在C#中,不能直接使用条件运算符进行范围比较,需要结合逻辑运算符来实现。

示例:

int a = 5;

// 错误的写法,不能直接进行范围比较
// result = 1 < a < 6;

// 正确的写法,结合逻辑运算符
result = 1 < a && a < 6;

不同类型之间的比较

不同数值类型之间可以随意进行条件运算符比较,但特殊类型(charstringbool)只能同类型进行==!=比较。

示例:

int intV = 5;
float floatV = 1.2f;
double doubleV = 12.4;
short shortV = 2;
byte byteV = 20;
uint uintV = 222;

result = intV > floatV;
result = floatV < doubleV;
result = intV > byteV;
result = floatV > uintV;
result = uintV > doubleV;

string stringV = "123";
char charV = 'A';
bool boolV = true;

result = stringV == "234"; // false
result = stringV == "123"; // true
result = stringV != "123"; // false

result = charV == 'B'; // false
result = charV > 123; // false
result = charV > 'B'; // false

result = boolV == true; // true

15.2 知识点代码

using System;

namespace Lesson12_条件运算符
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("条件运算符");

            #region 知识点一 条件运算符
            // 用于比较两个变量或常量
            // 是否大于 >
            // 是否小于 <
            // 是否等于 == 
            // 是否不等于 !=
            // 是否大于等于 >=
            // 是否小于等于 <=

            // 条件运算符 一定存在左右两边的内容
            // 左边内容 条件运算符 右边内容
            int a = 5;
            int b = 10;
            //a > b;//这就是一个条件运算符 但是直接这样写会报错且没有意义
            //条件运算符 不能直接这样使用
            //纯比较不用结果 那么对于我们来说 没有任何的意义
            bool result = a > b;
            // 比较的结果 返回的是 一个 bool 类型的值
            // 可以把比较的结果用一个bool变量存起来
            // true和false 如果比较的条件满足 那就返回true 不满足 就返回false
            // 先算右边 再赋值给左边
            Console.WriteLine(result);// false

            result = a < b;
            Console.WriteLine(result);// true

            result = a >= b;
            Console.WriteLine(result);// false

            result = a <= b;
            Console.WriteLine(result);// true

            result = a == b;
            Console.WriteLine(result);// false

            result = a != b;
            Console.WriteLine(result);// true
            #endregion

            #region 知识点二 各种应用写法
            //变量和变量比较
            a = 5;
            b = 10;
            result = a < b;// true
            //变量和数值(常量)比较
            result = a < 10;// true
            result = b > 5;// true
            //数值和数值比较
            result = 5 > 3;//true
            result = 5 == 3; // false
            result = 5 != 3; // true;
            //计算结果比较
            //条件运算符的 优先级 低于算术运算符
            // 8 > 6
            // 先计算 再比较
            result = a + 3 > a - 2 + 3;// true
            result = 3 + 3 < 5 - 1;//false

            //条件运算符的比较语法
            //左边 条件运算符 右边
            #endregion

            #region 知识点三 不能进行范围比较
            a = 5;
            //判断是否在某两个值之间
            // 1 < a < 6
            //在C#都不能这样写 这样写会报错
            //result = 1 < a < 6;
            //要判断 一个变量是否在两个数之间 要结合 逻辑运算符的知识点
            #endregion

            #region 知识点四 不同类型之间的比较

            //数值类型 不同数值类型之间 可以随意进行条件运算符比较
            int intV = 5;
            float floatV = 1.2f;
            double doubleV = 12.4;
            short shortV = 2;
            byte byteV = 20;
            uint uintV = 222;

            //只要是数值 就能够进行条件运算符比较  比较大于小于等于等等
            result = intV > floatV;
            result = floatV < doubleV;
            result = intV > byteV;
            result = floatV > uintV;
            result = uintV > doubleV;

            //特殊类型 char string bool 只能同类型进行 == 和 != 比较
            string stringV = "123";
            char charV = 'A';
            bool boolV = true;

            result = stringV == "234";//false
            result = stringV == "123";//true
            result = stringV != "123";//false



            //char类型变量不仅可以和自己类型进行 == != 还可以和数值类型进行比较
            //还可以和 字符类型进行大小比较
            //因为char变量可隐式转换成int类型 就比如'A'对应的ASCII码65再进行比较
            result = charV == 'B';//false
            result = charV > 123;//false
            result = charV > 'B';//false

            result = boolV == true;//true;

            #endregion
        }
    }
}

15.3 练习题

请口答下列表达式的结果

// 我的年龄(18) > 你们的年龄(22)   // false 
// 兔子的速度(3m/s) < 乌龟的速度(0.3m/s)  // false 
// 狗的重量(50kg) < 兔子的重量(5kg)  // false 
// 我身上的Money(10元) == 你身上也有Money(10元)  // true 

Console.WriteLine(18 > 22); // false 
Console.WriteLine(3.0 < 0.3); // false 
Console.WriteLine(50 < 5); // false 
Console.WriteLine(10 == 10); // true 

打印结果是什么?

bool b = true; 
Console.WriteLine(b != true); // false 
Console.WriteLine(10 == 10); // true 
Console.WriteLine(10 > 20); // false 
Console.WriteLine(10 <= 20); // true 
Console.WriteLine(10 <= 10); // true 

请问打印结果是什么?

bool gameOver, startGame; // 是可以不初始化 
int a = 10, b = 15; 
gameOver = a > (b - 5); // false 
startGame = gameOver == (b > (a + 5)); // true 
Console.WriteLine("startGame = " + startGame); // startGame = True 

15.4 练习题代码

using System;

namespace Lesson12_练习题
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("条件运算符练习题");
            #region 练习题一
            //请口答下列表达式的结果
            //我的年龄(18) > 你们的年龄(22)   // false
            //兔子的速度(3m / s) < 乌龟的速度(0.3m / s)  //false
            //狗的重量(50kg) < 兔子的重量(5kg)  //false
            //我身上的Money(10元) == 你身上也有Money(10元)  //true
            #endregion

            #region 练习题二
            //求打印结果是什么?
            //bool b = true;
            //Console.WriteLine(b != true); //false

            //Console.WriteLine(10 == 10); // true
            //Console.WriteLine(10 > 20); // false
            //Console.WriteLine(10 <= 20); // true
            //Console.WriteLine(10 <= 10); // true
            #endregion

            #region 练习题三
            //请问打印结果是什么?
            bool gameOver, startGame; //是可以不初始化
            int a = 10, b = 15;
            // 10 > 10 false
            gameOver = a > (b - 5); //false
            //15 > 10 + 5 false
            // false == false
            startGame = gameOver == (b > (a + 5));// true
            Console.WriteLine("startGame = " + startGame);//startGame = True
            #endregion
        }
    }
}


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏