C#学习(第四篇)

简介: 在上篇文章中我们学习了C#变量、C#数据类型转换以及C#运算符,这次我将继续带着大家学习C#运算符优先级、C#常量、C# if else:条件判断语句和C# switch语句。

C#运算符优先级

通过前面的学习我们知道运算符有不同的类型,当这些不同类型的运算符出现在同一个表达式中时,就必须遵循运算符的优先级来进行运算,才能保证运算的合理性和结果的正确性、唯一性。运算符的优先级决定了表达式中各个部分执行运算的先后顺序。

下表中详细介绍了 C# 中运算符的优先级顺序:



【示例】下面通过一个示例来演示一下运算符的优先级。

using System;
namespace c.biancheng.net
{
    class Demo
    {
        static void Main(string[] args){
            int a = 12;
            int b = 34;
            int c = 56;
            int d = 7;
            int e;
            e = (a + b) * c / d;
            Console.WriteLine("(a + b) * c / d 的值是 {0}", e);
            e = ((a + b) * c) / d;
            Console.WriteLine("((a + b) * c) / d 的值是 {0}", e);
            e = (a + b) * (c / d);
            Console.WriteLine("(a + b) * (c / d) 的值是 {0}", e);
            e = a + (b * c) / d;
            Console.WriteLine("a + (b * c) / d 的值是 {0}", e);
            Console.ReadLine();
        }
    }
}

运行结果如下:

(a + b) * c / d 的值是 368

((a + b) * c) / d 的值是 368

(a + b) * (c / d)的值是 368

a + (b * c) / d 的值是 284

C#常量

常量和我们前面介绍的《变量》类似,唯一不同的是常量的值在程序的编译阶段就已经确定了,而且在程序的运行期间不允许修改。常量可以是任何基本数据类型,例如整数常量、浮点常量、字符串常量等等。

定义常量

常量需要使用 const 关键字定义,语法格式如下所示:

const data_type constant_name = value;

其中,data_type 为常量的数据类型;constant_name 为常量名(类似于变量名);value 为常量的值。

下面通过示例来演示程序中常量的定义和使用:

using System;
namespace c.biancheng.net
{
    class Demo
    {
        static void Main(string[] args){
            const double pi = 3.14;     // 定义一个常量
            double r;
            Console.WriteLine("本程序可以计算圆的面积,请输入一个数字作为圆的半径: ");
            r = Convert.ToDouble(Console.ReadLine());
            double areaCircle = pi * r * r;
            Console.WriteLine("半径为: {0}, 圆的面积为: {1}", r, areaCircle);
            Console.ReadKey();
        }
    }
}

运行结果如下:

本程序可以计算圆的面积,请输入一个数字作为圆的半径:

11

半径为: 11, 圆的面积为: 379.94

整数常量

整数常量可以是八进制、十进制或者十六进制,可以使用前缀指定具体的进制,例如0x或0X表示十六进制,0表示八进制,没有前缀则表示十进制。

除了前缀外,整数常量还可以包含后缀,后缀可以是 U 和 L 的组合,U 和 L 分别表示 unsigned 和 long。后缀既可以大写也可以小写,而且可以以任意顺序进行组合,但是不能重复。

下面列举了一些整数常量的示例:

85 // 合法:十进制常量

0213 // 合法:八进制常量

0x4b // 合法:十六进制常量

30 // 合法:int 类型常量

30u // 合法:无符号 int 类型常量

30l // 合法:long 类型常量

30ul // 合法:无符号 long 类型常量

068 // 非法:8 不是一个八进制数字

032UU // 非法:后缀不能重复

浮点常量

浮点常量由整数部分、小数点、小数部分和指数部分组成。您可以用小数或指数形式来表示浮点常量。

下面列举了一些浮点常量的示例:

3.14159 // 合法

314159E-5L // 合法

510E // 非法:不完全指数

210f // 非法:没有小数或指数

.e55 // 非法:缺少整数或小数

当使用小数形式表示浮点常量时,必须包含小数点、指数或同时包含两者。当使用指数形式表示浮点常量时,必须包括整数部分、小数部分或同时包含两者。有符号的指数使用 e 或 E 表示。

字符常量

字符常量需要使用单引号括起来,类似于定义字符串类型的变量,例如’x’。一个字符常量可以是一个普通字符(例如’x’)、转义序列(例如’\t’)或 Unicode 字符(例如’\u02C0’)。

在 C# 中,有些字符前面带有一个反斜杠,这样的字符具有特殊含义,例如\n用于表示换行符、\t表示制表符。下表中列举了一些常用的转义字符:



下面通过示例演示一下转义字符的使用:

using System;
namespace c.biancheng.net
{
    class Demo
    {
        static void Main(string[] args){
            Console.WriteLine("CSDN\https://www.csdn.net/\n\n");
            Console.ReadLine();
        }
    }
}

运行结果如下:

CSDN https://www.csdn.net/

字符串常量

字符串常量需要使用双引号" “或@” "引起来。字符串常量与字符常量相似,可以是纯字符、转义序列或 Unicode 字符。

C# if else:条件判断语句

在 C# 编程中,if 语句主要用于条件判断,C# 中支持多种类型的 if 语句:

if 语句;

if else 语句;

if else if 语句。

if 语句

C# 中的 if 语句用于条件判断,其中包含一个布尔表达式,后面跟随着若干要执行的代码,当布尔表达式为真时,后面跟随的代码就会执行,if 语句的语法格式如下:

if(布尔表达式){
    表达式为真时要执行的代码;
}

if 语句的执行流程如下图所示:


image.png


【示例】使用 if 语句判断一个数字是不是偶数:

using System;
namespace c.biancheng.net
{
    class Demo
    {
        static void Main(string[] args){
            int num = 12;
            if(num % 2 == 0){
                Console.WriteLine("{0}是偶数", num);
                Console.ReadKey();
            }
        }
    }
}

运行结果如下:

12是偶数

if else 语句

C# 的 if else 语句同样用于条件判断,它比 if 语句中多出了一个 else 语句,当布尔表达式为假时,执行 else 语句块中的代码,语法格式如下所示:

if(布尔表达式){
    表达式为真时要执行的代码;
}else{
    表达式为假时要执行的代码;
}

if else 语句的执行流程如下图所示:


image.png


【示例】使用 if else 语句判断用户输入的数字是奇数还是偶数:

using System;
namespace c.biancheng.net
{
    class Demo
    {
        static void Main(string[] args){
            Console.WriteLine("请输入一个数字:");
            int num = Convert.ToInt32(Console.ReadLine());
            if(num % 2 == 0){
                Console.WriteLine("{0}是偶数", num);
            }else{
                Console.WriteLine("{0}是奇数", num);
            }
            Console.ReadKey();
        }
    }
}

运行结果如下所示:

请输入一个数字:

123

123是奇数

if else if 语句

C# 的 if else if 语句其实就是一个 if 语句后面跟随着若干个 else if else 语句,语句中可以包含多个条件表达式,程序会依次判断这些条件表达式,当条件表达式为真时则执行后面语句块中的代码,如果没有为真的条件表达式则执行 else 语句块中的代码,其语法格式如下所示:

if(布尔表达式 1){
    布尔表达式 1 为真时要执行的代码;
}else if(布尔表达式 2){
    布尔表达式 2 为真时要执行的代码;
}else if(布尔表达式 3){
    布尔表达式 3 为真时要执行的代码;
}
...
else{
    当所有布尔表达式都为假时要执行的代码;
}

需要注意的是,当布尔表达式为真,且成功执行它后面语句块中的代码后,会跳出 if else if 语句,语句中的其它部分不会再被执行。if else if 语句的执行流程如下图所示:



【示例】使用 if else if 语句来对学生成绩进行评定:

using System;
namespace c.biancheng.net
{
    class Demo
    {
        static void Main(string[] args){
            Console.WriteLine("请输入学生的成绩:");
            int num = Convert.ToInt32(Console.ReadLine());
            if(num < 0 || num > 100){
                Console.WriteLine("您输入的成绩有误!");
            }else if(num >= 0 && num < 60){
                Console.WriteLine("不及格");
            }else if(num >= 60 && num < 70){
                Console.WriteLine("及格");
            }else if(num >= 70 && num < 80){
                Console.WriteLine("中等");
            }else if(num >= 80 && num < 90){
                Console.WriteLine("良好");
            }else if(num >= 90 && num <= 100){
                Console.WriteLine("优秀");
            }
            Console.ReadKey();
        }
    }
}

运行结果如下:

请输入学生的成绩:

99

优秀

C# switch语句

C# 中的 switch 语句有些类似于《if else if 语句》,都可以根据表达式执行某个的语句块,其语法格式如下:

switch(表达式){
    case value1:
    //表达式的值为 value1 时,要执行的代码
        break;
    case value2:
    //表达式的值为 value2 时,要执行的代码
        break;
    case value3:
    //表达式的值为 value3 时,要执行的代码
        break;
    ... ...
    default:
    //没有与表达式相匹配的值时,要执行的代码
        break;
}

使用 switch 语句时必须遵守以下规则:

switch 语句中表达式的值必须是一个整型或者枚举类型;

在一个 switch 语句中可以有任意数量的 case 语句,每个 case

关键字后面要跟一个与表达式比较的值和一个冒号;

case 关键字后面的值必须与 switch中表达式的值具有相同的数据类型,并且必须是一个常量(也可以理解为是一个固定的值,不会随程序的运行发生改变);

当表达式的值等于 case中的值时,就会执行 case 后面的语句,在遇到 break 关键字时停止;

当遇到 break 关键字时,switch语句会停止运行,并跳转到 switch 语句以外的下一行代码继续运行;

并不是每一个case 语句后面都需要包含 break关键字,如果 case 语句为空(case 语句后面没有要执行的代码),则可以不包含 break 关键字,这时程序会继续执行后续的case 语句,直至遇到 break 关键字为止;

C# 不允许从一个 case 语句连续执行到下一个 case 语句,因此如果 case句中包含要执行的语句,就必须包含 break 关键字或其他跳转语句;

一个 switch 语句的末尾可以有一个可选的default(默认选项),当所有 case 语句都不能与表达式相匹配时则会执行 default 部分中的代码,而且 default 中的break 语句可以省略;

C# 不支持从一个 case 语句跳转到另一个 case 语句,如果要从一个 case 语句跳转到另一个case 语句的话,可以使用 goto 语句,例如goto default。

switch 语句的执行流程如下图所示:



【示例】根据输入的成绩来评定成绩的等级。

using System;
namespace c.biancheng.net
{
    class Demo
    {
        static void Main(string[] args){
            Console.WriteLine("请输入学生考试的成绩(0~100的整数)");
            int points = Convert.ToInt32(Console.ReadLine());
            switch (points / 10)
            {
                case 10:
                    Console.WriteLine("优秀");
                    break;
                case 9:
                    Console.WriteLine("优秀");
                    break;
                case 8:
                    Console.WriteLine("良好");
                    break;
                case 7:
                    Console.WriteLine("及格");
                    break;
                case 6:
                    Console.WriteLine("及格");
                    break;
                default:
                    Console.WriteLine("不及格");
                    break;
            }
        }
    }
}

运行结果如下:

请输入学生考试的成绩

(0~100的整数)

88 良好

💕Final~

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,bye~

相关文章
|
2月前
|
C#
C#学习相关系列之数据类型类的三大特性(二)
C#学习相关系列之数据类型类的三大特性(二)
|
2月前
|
C#
C#学习相关系列之yield和return的区别
C#学习相关系列之yield和return的区别
|
2月前
|
Java 调度 C#
C#学习系列相关之多线程(一)----常用多线程方法总结
C#学习系列相关之多线程(一)----常用多线程方法总结
|
2月前
|
C#
C#学习相关系列之数组---常用方法使用(二)
C#学习相关系列之数组---常用方法使用(二)
|
2月前
|
存储 C#
C#学习系列相关之数组(一)---数组的定义与使用
C#学习系列相关之数组(一)---数组的定义与使用
|
2月前
|
C#
C#学习相关系列之常用符号介绍
C#学习相关系列之常用符号介绍
|
2月前
|
C#
C#的基本语法结构学习
【5月更文挑战第17天】C#基础语法包括变量(如`int x = 10`)、常量(`const int MAX_VALUE = 100`)、运算符(如算术和比较运算符)、控制语句(if、for、while等)和函数声明(`int Add(int x, int y) { return x + y; }`)。这些构成C#程序的基本元素。
48 0
|
2月前
|
开发框架 .NET C#
C#学习相关系列之Linq用法---where和select用法(二)
C#学习相关系列之Linq用法---where和select用法(二)
|
26天前
|
前端开发 Java C#
GitHub突破5k Star!这件事情我坚持了3年,努力打造C#/.NET/.NET Core全面的学习、工作、面试指南知识库
GitHub突破5k Star!这件事情我坚持了3年,努力打造C#/.NET/.NET Core全面的学习、工作、面试指南知识库
|
2月前
|
C#
C#的类和对象的概念学习案例刨析
【5月更文挑战第17天】C#是一种面向对象的语言,以类和对象为核心。类作为对象的模板,定义了属性(如Name, Age)和行为(如Greet)。对象是类的实例,可设置属性值。封装通过访问修饰符隐藏实现细节,如Customer类的私有name字段通过Name属性访问。继承允许新类(如Employee)从现有类(Person)继承并扩展。多态让不同对象(如Circle, Square)共享相同接口(Shape),实现抽象方法Area,提供灵活的代码设计。
47 1