1.关系运算符(比较运算)
关系运算符用于比较两个值并决定它们的关系,然后给出相应的取值。
关系表达式:由关系运算符连接起来的式子。
关系表达式的运算结果为
bool
类型,
bool
类型只有两个值:true和false。
如果关系运算表达式成立,则这个表达式的值为
true
,否则为
false
。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace bool运算符
{
class Program
{
static void Main(string[] args)
{
int zsAge = 20;
int lsAge = 18;
bool isRight = zsAge > lsAge;
Console.WriteLine(isRight);
Console.ReadKey();
}
}
}
注意:字符串比较只等进行等于不等于的比较
运算符 | 用法 | 返回true的情况 |
---|---|---|
> | x1>x2 | x1大于x2 |
>= | x1>=x2 | x1大于或等于x2 |
< | x1<x2 | x1小于x2 |
<= | x1<=x2 | x1小于或等于x2 |
== | x1==x2 | x1等于x2 |
!== | x1!=x2 | x1不等于x2 |
这里尤其要注意的是等于运算符(==),它是由两个连续的等号(=)所组成,而不是一个等号,一个等号是赋值运算,这一点必须特别注意。例如:若有两个变量x与y要比较是否相等,应该是写成x==y,而不是写成x=y,后者的作用是将y的值指定给x,而不是比较x与y是否相等。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _关系运算符
{
class Program
{
static void Main(string[] args)
{
//定义3个整型数并且用关系运算符比较它们
//定义若干整数
int i = 37;
int j = 42;
int k = 42;
Console.WriteLine("变量数值");
Console.WriteLine("i="+i);
Console.WriteLine("j=" + j);
Console.WriteLine("k=" + k);
//大于
Console.WriteLine("大于:");
Console.WriteLine("i>j="+(i>j));//false
Console.WriteLine("j>i="+(j>i));//true
Console.WriteLine("k>j="+(k>j));//false
//大于等于
Console.WriteLine("大于等于:");
Console.WriteLine("i>=j="+(i>=j));//false
Console.WriteLine("j>=i="+(j>=i));//true
Console.WriteLine("k>=j="+(k>=j));//true
//小于等于
Console.WriteLine("小于等于:");
Console.WriteLine("i<=j="+(i<=j));//true
Console.WriteLine("j<=i="+(j<=i));//false
Console.WriteLine("k<=j="+(k<=j));//false
//等于
Console.WriteLine("等于:");
Console.WriteLine("i==j="+(i==j));//false
Console.WriteLine("k==j="+(k==j));//true
//不等于
Console.WriteLine("不等于:");
Console.WriteLine("i!=j="+(i!=j));//true
Console.WriteLine("k!=j="+(k!=j));//false
Console.ReadKey();
}
}
}
2.逻辑运算符
逻辑运算符:&& || !(&&运算符可以完成条件逻辑与的运算,可以用&&来决定是否两个表达式都为true。)
关系运算符经常用在条件表达式中以构成更复杂的判断表达式.这些由逻辑运算符连接起来的式子称为逻辑表达式
当两个表达式全只要有一个为 true ,其结果为 true 。
注意:进行&& || !运算,运算符左右两边的表达式要先进行运算,然后再对两边表达式的结果进行与,或等运算。
逻辑与运算:
(1)逻辑与:&&
Bool isRight=表达式1&&表达式2
逻辑与连接的两个表达式,要能够求解为bool类型,一般情况下都是关系表达式。
整个逻辑与运算的结果也是bool类型。
表达式1 | 表达式2 | 逻辑与结果 |
---|---|---|
true | true | true |
true | false | false |
false | true | false |
false | false | false |
当两个表达式全为true时,其结果为true。
(2)逻辑或:|| (或者)
Bool isRight=表达式1||表达式2
逻辑与连接的两个表达式,要能够求解为bool类型,一般情况下都是关系表达式。
整个逻辑或运算的结果也是bool类型。
表达式1 | 表达式2 | 逻辑与结果 |
---|---|---|
true | true | true |
true | false | true |
false | true | true |
false | false | false |
当两个表达式全只要有一个为 true ,其结果为 true 。
(3)逻辑非:! (取反) 这是一个一元运算符
用法:
!(布尔类型的表达式)
作用:
如果布尔表达式为true,加!号后,其整个式子的结果为false。
如果布尔表达式为false,加!号后,其整个式子的结果为true。
总结:
逻辑运算符 | 用法 | 返回true的情况 |
---|---|---|
&& | x&&y | x和y都是true |
|| | x||y | x或者y是true |
! | ! x | x为false |
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace bool运算符和逻辑运算符
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入您的的语文成绩?");
int zsChinese = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("请输入您的数学成绩?");
int zsMath = Convert.ToInt32(Console.ReadLine());
//张三的语文和数学成绩都大于90
bool first = zsChinese >= 90 && zsMath >= 90;
//张三的语文和数学成绩至少有一门大于90
bool sec = zsChinese >= 90 || zsMath > 90;
Console.WriteLine("\"张三的语文和数学成绩都大于90分\"这句话的结果为:{0}", first);
Console.WriteLine("\"张三的语文和数学成绩至少有一门大于90分\"这句话的结果为:{0}", sec);
Console.ReadKey();
}
}
}