-
多重 if 结构包含多个条件,每个条件对应一个分支。运行时,从上到下依次判断每一个条件,当某个条件为 true ,就执行对应的分支,并且不再验证其他的条件;若所有的条件均为 false ,则执行最后的 else 分支。
查看全部 -
C#中else与if的匹配
if...else 条件结构中,如果某个分支只包含一条命令,那么是可以省略大括号{}的。比如上一节的练习,可以简化为:
请注意,如果分支中包含2条以上的命令,是不能省略{}的。
如果 if 和 else 比较多,又省略了{},怎么判断那一个 if 和哪一个 else 是一对呢?请看下面的代码:
当出现多个 if 和 else ,又没有{}来界定范围时,请参考下面2条原则:
①每一个 else 与前面离它最近的 if 配对。按照这个原则,上面示例代码的两个 else 都与第二个 if 配对,这显然是不可能的,于是又有了第二个原则。
②多个 else 都与同一个 if 相近时,最内层的 else 优先配对。这样,第一个 else 处于内层,就与第二个 if 优先配对,第二个 else 只能与第一个 if 配对。上面的示例代码会输出“C”。
根据这两个原则,上面的代码等同于如下的规范代码:
编写条件结构时,尽可能加上 {} 可以省掉不必要的错误和麻烦。
查看全部 -
C#中多重if结构
如果,有多个条件,其中只有一个成立,应该怎样判断呢?比如小明考试,90分以上奖励一台手机,80-89分奖励一个滑板,60-79分奖励一个烧饼,60以下没有奖励,0-100的分数被划分为4档,需要做3次条件判断。如果用上一节学习的嵌套if结构完成,3层if的嵌套会使程序变得很复杂。本节我们使用多重 if 结构实现,它的基本语法为:
程序运行时,将从上到下依次判断条件,若某个条件为 true ,则执行对应的分支,并且停止后面条件的判断。比如下面的代码,将输出“奖励一个烧饼”:
查看全部 -
C#中嵌套的if结构
程序开发中,往往需要先判断一个条件是否成立,再判断另一个条件。比如下面的例子:验证账号是否为“admin”,如果不是则提示错误;如果是,则验证密码是否为“bj2022”:
外层的
if (userName == "admin")
会被首先判断,如果为 false ,就会输出“用户名错误!”;如果为 true ,再判断内层的if (password == "bj2022")
。查看全部 -
C#中if...else条件结构
前一节我们学习了 if 条件结构。条件结构可以有2个分支,比如下面的流程图,判断一个整数是奇数还是偶数:
这个流程图从C#实现如下,其中,条件为 true 时执行的分支写在 if() 后面的{}中;条件为 false 时执行的分支写在 else 后面的{}中。
这个由 if 和 else 组成的结构是条件结构的一种,它的基本逻辑是:当条件为 true 时,执行分支1,否则,执行分支2。这段程序中,变量num能够被2整除时会执行分支1,不能被2整除时执行分支2。程序的运行结果是:
每一个 if...else 结构都包含 1 个条件和 2 个分支,而程序会根据条件的真与假,选择执行其中的某一个分支。条件必须为 bool 类型的表达式。
查看全部 -
C#中判断和分支
走到岔路口,需要选择方向。编写程序也会遇到判断和分支。请看下面的流程图,判断手机账户余额是否不足10元,如果不足给出提示:
这个程序在“balance<10”这个步骤出现了分支,“balance<10”被称为判断( bool 类型),当判断为 true 时,执行左边的分支,输出提示;当判断为 false 时,执行右边的分支,不输出任何内容。
在C#中,这个结构成为条件结构,通常用 if 关键字来实现:
当 if 右边的判断为 true 的时候,会执行分支一;如果判断为 false ,则不会执行分支一。
查看全部 -
C#用流程图描述程序逻辑
流程图是程序步骤的图形化表示方法。流程图中包括如下符号:
以上图形中,流程线用来连接相邻的两个步骤;每一个程序都有且仅有一个开始和结束。
以下流程图描述的是,求2个浮点数的和,后边是用C#实现:
查看全部 -
C#的运算符优先级
前面我们学习了那么多运算符,如果编程中同时使用了多个运算符,到底哪一个会先运算呢?这就是优先级的问题。C#运算符的优先级请参考下面的顺序:
①括号。学数学的时候我们就知道,要先计算括号里面的内容。C#语言也是一样,如果有多层括号,要从里向外计算。括号优先级最高。
②一元运算符。有些运算符两边有2个操作数,比如2+3、6%5等等,这些叫做二元运算符。只有一个操作数的叫做一元运算符,它们的优先级高于二元运算符。一元运算符包括:++(自加) 、 --(自减) 、 !(逻辑非)。
③*(乘)、/(除)、%(取余)。
④+(加)、-(减)。
⑤>(大于)、<(小于)、>=(大于等于)、<=(小于等于)。
⑥==(等于)、!=(不等于)。
⑦&&(逻辑与)。
⑧||(逻辑或)。
⑨赋值运算符。包括:=、+=、-=、*=、/=、%=。
另外,还需要注意一点:优先级相同的运算符从左向右计算(赋值运算符相反)。
请看下面这段代码:
bool b = 20 - (15 - 8) * 2 > 10 && (2 % 2 * 2 + 2) > 2; Console.WriteLine(b);
分析:首先计算优先级最高的括号,(15-8)得到7,(2%2*2+2)则需要先计算%和*,后算+,结果是2,表达式就变成了:
bool b=20-7*2>10&&2>2;
接下来优先级最高的是7*2,然后是减法,变成:
bool b=6>10&&2>2;
继续计算两个大于号,得到:
bool b=false&&false;
最后的结果当然是false:
查看全部 -
C#的赋值运算符
前面,我们已经学过一个赋值运算符“=”,这次我们学习一下其他的赋值运算符:
加赋值“+=”:先加后赋值。请看下面的例子:
int x=5; x += 2;//这句等同于x=x+2;执行后,x的值为7
减赋值“-=”:先减后赋值。请看下面的例子:
int x=5; x -= 2;//这句等同于x=x-2;执行后,x的值为3
乘赋值“*=”:先乘后赋值。请看下面的例子:
int x=5; x *= 2;//这句等同于x=x*2;执行后,x的值为10
除赋值“/=”:先除后赋值。请看下面的例子:
int x=5; x /= 2;//这句等同于x=x/2;执行后,x的值为2
取余赋值“%=”:先取余后赋值。请看下面的例子:
int x=5; x %= 2;//这句等同于x=x%2;执行后,x的值为1
与其他运算符从左向右计算不同,赋值运算符从右向左计算。
查看全部 -
C#的逻辑运算符(二)
作为对上一节学习的巩固,这一节我们通过几个示例熟悉逻辑运算符的应用。第一个示例是关于逻辑与,比如小张想结婚,未来丈母娘开出的条件是:存款必须过10万,必须有房子,这两条少一条都不行。既然2个条件都是“必须”做到,那就需要同时满足,适合用逻辑与连接:
运行结果为:False
下一个示例是关于逻辑或,比如丽丽选择男朋友的标准,要么是“工程师”,要么是“运动员”,二者居其一即可:
运行结果为:True
查看全部 -
C#的逻辑运算符(一)
逻辑运算符用来连接多个 bool 类型表达式,实现多个条件的复合判断。C#中的逻辑运算符包括:逻辑非( ! )、逻辑与( && )、逻辑或( || )。
逻辑非用来对某一个 bool 类型表达式取反,即“真变假”或“假变真”。请看下面的代码:
Console.WriteLine(1 > 0);//条件表达式为true,输出True Console.WriteLine(!(1 > 0));//用逻辑非对条件表达式取反,输出False
逻辑与用来判断 2 个 bool 类型表达式是否同时为 true 。请看下面的代码:
int x = 5, y = 2;//同时声明2个int型变量并赋值 Console.WriteLine(x>3 && y>3);//判断x>3和y>3是否同时为true,由于y>3为false,所以整个表达式为false
只有当&&两边的表达式均为 true 时,整个表达式才为 true ;若任意一个表达式为 false ,整个表达式即为 false 。
逻辑或用来判断2个 bool 类型表达式中是否有一个为 true 。请看下面的代码:
int x = 5, y = 2;//同时声明2个int型变量并赋值 Console.WriteLine(x>3 || y>3);//判断x>3和y>3是否有一个为true,由于x>3为true,所以整个表达式为true
只要||两边的表达式有一个为 true ,整个表达式即为 true ;若两边的表达式均为 false ,整个表达式为 false 。
对比一下,就是说: && 运算符,两边同真才算真,一边为假就算假; || 运算符,一边为真即为真,两边同假才是假。
查看全部 -
C#的比较运算符
比较数字大小,或者比较数字相等的运算符是比较运算符。C#中的比较运算符有:
注意:表示两个值相等的“等于”是由2个“=”组成的。
比较运算的结果,都是布尔类型( bool ),bool类型我们是第一次提到,它表示逻辑上的真(成立)与假(不成立)。真与假用关键字 true 和 false 表示。
上面程序中, x>=y 不成立会返回 false , x<=y 成立,会返回 true 。运行结果:
查看全部 -
定义一个string数组存放姓名,一个int数组存放成绩,然后定义一个最大值max,用for循环嵌套if比较大小把最大值赋给max,并把最大值的索引给姓名数组。
static void Main(string[] args)
{
string[] name={"吴松","钱东宇","伏晨","陈陆","周蕊","林日鹏","何昆","关欣"};
int[] score={89,90,98,56,60,91,93,85};
int max=0;
int index=0;
for(int i=0;i<score.Length;i++)
if(max<score[i])
{
max=score[i];
index=i;
}
Console.Write("分数最高的是{0},分数是{1},",name[index],max);
}
查看全部 -
C#的算术运算符(三)
这一节学习两个特别的运算符++和--。
++,叫做自加运算符。比如你今年18岁,明年长了一岁,用代码写出来是这样:
int age=18;//今年18岁 age=age+1;//明年,在今年的年龄上加1岁
也可以写成这样:
int age=18;//今年18岁 age++;//明年,在今年的年龄上加1岁
age++;
与age=age+1;
作用相同,都是变量的值+1。--,叫做自减运算符。同理,你今年18岁,用了XX护肤水以后,明年变成17岁了,可以这样写:
int age=18;//今年18岁 age--;//等同于 age=age-1;
另外,
age++;
与age--;
也可以写作++age;
或--age;
但请注意:如果与其他运算在同一语句中,++写在变量前面或后面,算法不一样,请看下例:
Console.WriteLine(age++);作用等同于下面两句:
Console.WriteLine(age);//先打印 age=age+1;//后自加
Console.WriteLine(++age);作用等同于下面两句:
age=age+1;//先自加 Console.WriteLine(age);//后打印
你看,运算顺序不一样吧,所以输出的结果也不会相同。
查看全部 -
数组,可以用来存储相同类型的多个数值。声明并初始化数组的语法:
数据类型[] 数组名 = new 数据类型[]{初始值1,初始值2,...初始值3};
数组元素用索引来区分,索引从 0 开始。
数组的 Length 属性返回数组的长度,即数组元素的个数。
查看全部
举报