.net第三章-- C#语句的组成与使用

前言

  • C#语句的组成与使用

  • 运算符
    算术运算符;关系和类型测试运算符;逻辑运算符;赋值运算;字符串运算符;位运算符;条件运算符;运算符优先级

  • 表达式的组成和书写规则

C#语句的组成与使用

语句(statement)

  • C# 程序的过程构造块,用于声明变量和常量、创建对象、变量赋值、调用方法、控制分支、创建循环等

  • 语句通常以分号终止

  • 由花括号({ 和 })括起来的一系列语句构成代码块

C#语句的组成与使用

在这里插入图片描述

例子

using System;
namespace CSharpBook.Chapter03
{
    class StatementTest
    {
        void PrintArea(int r)
        {  //代码块:printArea的方法体
            const double PI = 3.14;   //声明语句:声明常量
            double a;              //声明语句:声明变量
            if (r > 0)               //控制语句
            {
                a = PI * r * r;       //赋值语句,计算圆面积
                Console.WriteLine("半径={0}, 面积={1}", r, a);
            }
            else
            {
                Console.WriteLine("半径={0},半径<=0,错误!", r); //调用静态方法
            }
        }
        static void Main()
        {  //代码块:Main的方法体
            StatementTest obj;        //声明语句:声明对象
            obj = new StatementTest(); //赋值语句/创建对象
            for (int i = -2; i < 3; i++)  //循环语句
            {
                obj.PrintArea(i);    //调用对象方法
            }
            Console.ReadKey();
        }
    }
}

运算符

  • C#运算符(operator)是术语或符号,用于在表达式中对一个或多个称为操作数的进行计算并返回结果值

  • 一元运算符如++或new;二元运算符如算术运算符+、-、*、/;三元运算符:条件运算符“?:”

  • 当表达式包含多个运算符时,运算符的优先级控制各运算符的计算顺序

  • 通过运算符重载(overload)可以为用户自定义的类型定义新的运算符

算术运算符

在这里插入图片描述

  • 算术运算符两边的操作应是数值型。若是字符型,则自动转换成字符所对应的ASCII码值后再进行运算

  • 增量运算符(++、–)可以出现在操作数之前(++variable、–variable)或之后(variable++ 、variable–)

关系和类型测试运算符

在这里插入图片描述

  • 关系运算符的优先级相同
  • 对于两个预定义的数值类型,关系运算符按照操作数的数值大小进行比较
  • 对于string类型,关系运算符比较字符串的值,即按字符的ASCII码值从左到右一一比较:

首先比较两个字符串的第一个字符,其ASCII码值大的字符串大,若第一个字符相等,则继续比较第二个字符,依此类推,直至出现不同的字符为止

  • 对于string以外的引用类型,如果两个操作数引用同一个对象,则==返回True。如果两个操作数引用不同的对象,则!=返回True。
  • int 和System.Int32是相同的数据类型

逻辑运算符

在这里插入图片描述

赋值运算符

在这里插入图片描述

字符串运算符

  • C#提供的字符串运算符只有一个:“+”,用于串联(拼接)两个字符串
  • 在字符串串联运算中,如果一个操作数为null,则用空字符串来替换此操作数
    在这里插入图片描述

位运算符

在这里插入图片描述

条件运算符

  • 逻辑表达式? 表达式1: 表达式2;

  • 首先计算“逻辑表达式”的值,如果为true,则运算结果为“表达式1”的值,否则运算结果为“表达式2”的值

  • 计算a和b两个数中较大的数,并将其赋给变量maxnum中,语句为:
    maxnum = (a > b)? a : b;

null相关运算符

在这里插入图片描述

其他运算符和运算符优先级

  • sizeof用于获取值类型的字节大小,仅适用于值类型,而不适用于引用类型

  • sizeof运算符只能在不安全代码块中使用

  • typeof用于获取类型的System.Type对象,例如:System.Type type = typeof(int);
    若要获取表达式的运行时类型,可以使用.NET Framework方法GetType()

  • nameof用于返回标识符(类型、成员、变量等)的名称
    在这里插入图片描述

 unsafe static void Main()
        {
            Console.WriteLine("The size of short is {0}.", sizeof(short));
            Console.WriteLine("The size of int is {0}.", sizeof(int));
            Console.WriteLine("The size of long is {0}.", sizeof(long));
            Console.ReadKey();
        }
           Type t1 = typeof(bool);
            Console.WriteLine("typeof(bool) is {0}", t1);
            int radius = 5;  Type t2 = radius.GetType();
            Console.WriteLine("radius.GetType() is {0}", t2);
            Console.WriteLine("Area = {0}", radius * radius * Math.PI);
            Console.WriteLine("The type of Area is {0}", (radius * radius * Math.PI).GetType());
            Console.ReadKey();
  • 表达式中的运算符按照运算符优先级(precedence)的特定顺序和结合性规则计算

  • 同一类别中的运算符优先级相同

  • 优先级和结合性都可以用括号控制

表达式的组成和书写规则

表达式的组成

  • 表达式由操作数(变量、常量、函数)、运算符和圆括号按一定规则组成。
  • 表达式通过运算后产生运算结果,运算结果的类型由操作数和运算符共同决定

表达式的书写规则

  • 乘号不能省略,例如,a乘以b应写为a*b。
  • 括号必须成对出现,而且只能使用圆括号;圆括号可以嵌套使用。
  • 表达式从左到右在同一个基准上书写,无高低、大小区分

例子

int a = 1,b = 2,c = 3;
a += b++ + c;
Console.WriteLine(" a = {0},  b = {1},  c = {2}", a, b, c);
Console.WriteLine(" c >= b && b >= a 结果为: {0}", c >= b && b >= a);
Console.WriteLine(" a < b ? a++ : b++ 结果为: {0}", a < b ? a++ : b++);
Console.WriteLine(" a = {0},  b = {1},  c = {2}", a, b, c);
Console.WriteLine(" c += a > b ? a++ : b++ 结果为: {0}", c += a > b ? a++ : b++);
Console.WriteLine(" a = {0},  b = {1},  c = {2}", a, b, c);
 a = 6,  b = 3,  c = 3
 c >= b && b >= a 结果为: False
 a < b ? a++ : b++ 结果为: 3
 a = 6,  b = 4,  c = 3
 c += a > b ? a++ : b++ 结果为: 9
 a = 7,  b = 4,  c = 9
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

醉卧考场君莫笑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值