美文网首页
03-运算符、表达式和数据类型转换

03-运算符、表达式和数据类型转换

作者: D丝学编程 | 来源:发表于2021-02-13 11:11 被阅读0次

一、表达式

表达式:表达式是指由操作数和运算符组成的用于完成某种运算功能的语句。

例如:

y = x*(z+100)

上述就是一个表达式。

二、运算符

(1)算数运算符

算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。下表列出了所有的算术运算符。

表格中的实例假设整数变量A的值为10,变量B的值为20:

操作符 描述 例子
+ 加法 - 相加运算符两侧的值 A + B 等于 30
- 减法 - 左操作数减去右操作数 A – B 等于 -10
* 乘法 - 相乘操作符两侧的值 A * B等于200
/ 除法 - 左操作数除以右操作数 B / A等于2
取余 - 左操作数除以右操作数的余数 B%A等于0
++ 自增: 操作数的值增加1 B++ 或 ++B 等于 21(区别详见下文)
-- 自减: 操作数的值减少1 B-- 或 --B 等于 19(区别详见下文)

其中+运算符,除了数学运算,还可以进行数据的拼接,例如:

int a = 10;
string b = "10";
Console.WriteLine(a+b);  //此处不进行数学运算,进行拼接,结果将打印1010

两个相同的数据类型进行运算,结果一定还是这个数据类型,所以两个数相除没有小数部分,例如:

int a = 5;
int b = 2;
Console.WriteLine(a/b);   //将打印结果2

不同的数据类型运算,结果为范围大的数据类型

double a = 5;
int b = 2;
Console.WriteLine(a/b);   //将打印结果2.5

自增++运算符和自减--运算符,符号写在前面和后面的区别如下:

++在前,先自增,在运算; ++在后,先运算,在自增 (--运算符同理)

int a = 10;
++a;                    //或者a++,执行结果一样
Console.WriteLine(a);  //打印11
int a = 10;
int b = a++;
Console.WriteLine(a);   //打印结果11
Console.WriteLine(b);   //打印结果10
int a = 10;
int b = ++a;
Console.WriteLine(a);   //打印结果11
Console.WriteLine(b);   //打印结果11

(2)赋值运算符

操作符 描述 例子
= 简单的赋值运算符,将右操作数的值赋给左侧操作数 C = A + B将把A + B得到的值赋给C
+ = 加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数 C + = A等价于C = C + A
- = 减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数 C - = A等价于C = C - A
* = 乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数 C * = A等价于C = C * A
/ = 除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数 C / = A,C 与 A 同类型时等价于 C = C / A
%= 取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数 C%= A等价于C = C%A

例如:

int a = 1;   //正确
// =赋值运算符左边只能是变量,不能是数据常量。
1 = a;  //错误
a + 1 = 2;  //错误
int a = 10;
int b = 5;
a += b;   // 等价  a = a + b;
Console.WriteLine(a);   //打印15
Console.WriteLine(b);   //打印5

(3)关系运算符

表格中的实例整数变量A的值为10,变量B的值为20:

运算符 描述 例子
== 检查如果两个操作数的值是否相等,如果相等则条件为真。 (A == B)为假。
!= 检查如果两个操作数的值是否相等,如果值不相等则条件为真。 (A != B) 为真。
> 检查左操作数的值是否大于右操作数的值,如果是那么条件为真。 (A> B)为假。
< 检查左操作数的值是否小于右操作数的值,如果是那么条件为真。 (A <B)为真。
>= 检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。 (A> = B)为假。
<= 检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。 (A <= B)为真。

=与==的区别:

int a = 10;
int b = 10;
Console.WriteLine(a = b);  //=代表赋值,把b的值赋给a,然后打印a的值10
Console.WriteLine(a == b); //==代表比较两者是否相等,打印true.

(4)逻辑运算符

下表列出了逻辑运算符的基本运算,假设布尔变量A为true,变量B为false

操作符 描述 例子
&& 称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。 (A && B)为假。
| | 称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。 (A | | B)为真。
称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。 !(A && B)为真。

例如:

int a = 20;
int b = 500;
Console.WriteLine(a > b && a > 0);   //打印false
Console.WriteLine(a > b || a > 0);    //打印true
Console.WriteLine(!(a > b || a > 0));  //打印false

(5)三目运算符

该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。

条件表达式 ?结果1 :结果2 (表达式成立,执行结果1,否则执行结果2),例如:

int a = 10;
int b = 20;
int c = a > b ? a : b;
Console.WriteLine(c);   //此处打印20

三、数据类型转换

在C#语言中,不同类型的数据在进行混合运算时需要进行类型转换,即将不同类型的数据转换为同种类型的数据后再进行计算,针对于值类型的数据,类型转换主要包括隐式转换和显式转换两种形式。

  • 隐式转换:系统默认的、无须显式声明即可进行的转换。
  • 显式转换:要求一定要将某一类型的数据转换为另外一种类型,则可以使用强制类型转换运算符进行转换,这种强制转换的过程称为显式转换。

(1)隐式转换举例

//将int类型自动转换成long类型
int a = 10;
long b = a;
//将int类型自动转换成double类型
int a = 10;
double b = a;        

隐式转换是从低精度、小范围的数据类型转换为高精度、大范围的数据类型,如下:

源类型 目标类型
char int、long、float、double
short int、long、float、double
int long、float、double
long float、double
float double

注意:char类型不能通过隐式转换转换为short类型。

(2)显式转换举例

double a = 1.2;
int b = (int)a;   //将int类型转换为double类型,会直接忽略掉小数部分。

数据类型转换的不兼容性:

  • 数字和布尔不能类型转换
  • 字符和布尔不能类型转换
  • 字符转数字可以自动转换,数字转字符只能强制转换
  • 字符和数字相互转换的时候使用ASCII编码来进行转换

(3)字符和数字之间的转换(通过ASCII码转换)

字符转数字:

char myChar = 'A';
int myNum = myChar;
Console.WriteLine(myNum);

数字转字符:

int myNum = 65;
char myChar = (char)myNum;
Console.WriteLine(myChar);

(4)字符和字符串的特殊关系

字符串等于字符数组:

string str = "hello";
char myChar = str[0];
Console.WriteLine(myChar);   //此处可以打印数组第一个元素内容h

(5)值类型和字符串类型的相互转换

值类型(普通类型)转成字符串:

int a = 10;
//string str = a+"";  //可以通过+来进行转换
string str = a.ToString();  //通常使用ToString方法进行转换
double PI = 3.1415926;
string str = PI.ToString("F2");
Console.WriteLine(str);

ToString()可以直接转换成字符串,也可以格式化字符串,如下:

格式 格式化字符串 结果
货币 2.5.ToString("C") ¥2.50
十进制数 25.ToString("D5") 00025
固定点 25.ToString("F2") 25.00
常规 2.5.ToString("G") 2.5
数字 2500000.ToString("N") 2,500,000.00
百分比 0.126.ToString(“P”) 12.6%

字符串转值类型(普通类型):

string str = "12";
int a = int.Parse(str);
Console.WriteLine(a);

可以通过数据类型的Parse方法进行字符串转换成值类型。

相关文章

  • 01-swift爬坑笔记

    swift简介 内容综述-基础语法和特性 01-swift简介 02-基础数据类型 03-运算符和表达式 04-流...

  • Python学习记录

    变量、运算符与数据类型 注释: 运算符 变量和赋值 数据类型与转换

  • javascript深入浅出(慕课网)

    1 数据类型1-2 六种数据类型1-3 隐式转换1-4 包装对象1-5 类型检测 2 表达式和运算符2-1 表达式...

  • JS深入浅出

    数据类型 表达式和运算符 语句 js对象 属性

  • JavaScript基础知识

    1.比较运算符 (1)== 和 === ‘==’会自动转换数据类型再比较; ‘===’不会自动转换数据类型,如果数...

  • JS基础

    JavaScript概述 、 JavaScript基础语法 、 变量和常量 、 数据类型 数据类型转换 、 运算符...

  • 【JAVA学习笔记】基础语法

    学习自华为开发者学院JAVA系列课程 数据类型 数据类型转换(自动转换+强制转换) 运算符 逻辑判断 三目运算符 ...

  • 第03天C语言(00)笔记总结

    01-运算符-基本概念 02-算术运算符 03-算术运算符-优先级和结合性 04-类型转换 05-赋值运算符 06...

  • Java day02 运算符

    代码小谈 数据类型的转换不同类型的变量可以在一起运算。 数据类型转换方式 运算符 1、算术运算符 ++和--使用规...

  • 暑假复习1

    1变量的声明 2常量的声明 3js三种输出方式 4变量名的规范 5数据类型的转换 6运算符和表达式 7运算符与表达...

网友评论

      本文标题:03-运算符、表达式和数据类型转换

      本文链接:https://www.haomeiwen.com/subject/nkzlxltx.html