C# 运算符与程序结构
运算符
1. 算术运算符: ++ --
2. 比较运算符:
> < == != >= <=
0) 比较运算符的运算结果:是bool类型的结果 (true | false)
true:表示的结果是真的,成立的
false:表示的结果是假的,不成立的
一般,定义一个 布尔类型的变量来接收比较
结果。
如:
int a = 10 ;
int b = 20 ;
//先计算出20==20的结果
//结果赋值给 result2变量
bool result2 = 20 == 20 ; //true True
bool result1 = a > b ; //false False
1) >= 表示:大于或者等于(满足一个即可)
<= 表示:小于或者等于(满足一个即可)
2)== 属于比较运算符
两个数的值是否是相等的,如果相等,
证明确实是相等,否则 ,不是相等的
3)!= 比较两个数不相等,如果不相等,
结果是真的,如果两个数,结果是假的。
4)== 使用场景:
1. 判断一个数是否偶数(奇数):
这个数和2取余,如果余数为0,证明是偶数
x % 2 == 0
2. 判断是否是奇数: x % 2 != 0
3. 判断一个数 n 是否是另外一个数 m 的倍数
即:n % m == 0
如: 一个数是否是8的倍数 8 16 24 40
n % 8 == 0
4. 判断一个数 n 是否能被 18 整除
n % 18 == 0
练习:
从键盘输入一个数,判断这个数是否大于10,
是否大于等于10
是否是偶数。
//1.准备一个数
//2.判断
//3.结果
3. 赋值运算符
----------------------------------------------
赋值运算,一个数字
常用赋值运算符:
= : 将等号右侧的内容赋值给等号左侧
+=
-=
*=
/=
%=
复合运算符
如:
int i = 1 ; //定义变量i,值为1
//完整形式: i = i + 10
//先计算 i+10 的结果,再将赋值给变量i
// i 的值就变成了11
i += 10 ; //11
练习:
定义一个变量,变量名为 i ,值为10
然后计算
1) i += 10 ; 的结果
2) i -= 10 ; 的结果
3) i *= 10 ; 的结果
4) i /= 10 ; 的结果
5) i %= 10 ; 的结果
强调:+= -= *= /=等赋值运算符执行完之后,
它们所操作的变量的值会改变.
-----------------------------------------
4. 逻辑运算符 (重要)
1)布尔值: true | false
2)常用的逻辑运算符:
&& : 逻辑与 “并且”
|| : 逻辑或 “或”
! : 逻辑非 “取反”
3) 逻辑运算符用下载连接多个比较表达式
运算结果一般是放在一个bool类型的变量中
4) 逻辑运算符中的逻辑与和逻辑或存在
一种短路运算
5) 关于短路运算:
逻辑与连接多个式子时,会从左往右依次执行
每一个式子,在这过程中,只要有一个为假,
后面的其它式子根本不会执行,整个式子:false
只有所有式子都被执行,且都为真时,
整个式子才为真。
逻辑或连接多个式子时,也是依次执行每一个
式子,在这过程中,只要有一个为真,
后面的式子不会再执行,整个式将返回:true
也就是说,面其它的式子即使全部为假,
整个式子依然还是真的。
如:
int i = 1;
int j = 2;
// bool b1 = i + j >= 3 || ++j == 2 ;
// bool b2 = i + j >= 3 && j++ == 2 ;
中午练习:
1.详见:“逻辑运算符练习”.jpg
2.键盘输入一个数,判断这个数是否是
16的倍数。
练习:
闰年判断。
366天
365天
1. 如果年份能被400整除,闰年
2. 如果年份能被4整除,但是同时不能被100整除,闰年
条件1
||
条件2 ( && )
-------------------------------------------------
下午
5.三元运算符(条件运算符)
基本语法:
条件 ? 结果处1 : 结果处2 ;
1) 整个条件运算符返回时,返回值类型应该如何
确定 ?是float ? double? string? bool?
返回值要么是第1处结果,要么第2处结果,
所以返回值是什么类型是根据
第1处内容的类型和第2处内容的类型
2)三元运算符,其实是 if 语句的一种简化形式
表述的含义是:如果满足条件,执行一种操作;
如果不满足条件,执行另外一种操作。
练习:
闰年判断
使用条件运算符
如果是闰年,返回 "闰年" 两个字,
如果不是闰年,返回 "平年" 两个字。
核心内容:
bool result =
( year % 400 == 0 )
||
( year % 4 == 0 && year % 100 != 0 );
string r = result ? "闰年" :"平年" ;
练习:
键盘输入一个数,如果这个数是奇数,
返回这个数加上100 的结果
如果这个数不是奇数,返回这个数减去100的结果。
要求:使用三元运算符来完成。
奇数的判断条件:和2取余数不等于0
位运算符 : 二进制
总结:
算术运算符:
++ -- == + - * / %
1.++或--:
放在变量的前面时,要先进行+1,然后再
执行其它运算;
int i = 1 ;
Console.WriteLine( ++i );
放在变量的后面时,要进行其它的运行,然后再
为变量加1.
int i = 1 ;
Console.WriteLine( i++ );
++或--放在已经赋值变量的前面或后面
2. == 与 = 区别?
1) == 是比较运算符,是布尔值
用来比较两个的值是否是相等的
相等返回true,否则返回false
2) = 是基础的赋值运算符,
int number = 10 ;
将等号右侧的10赋值给等号左侧的变量 number
3. % 与 ==
判断奇偶性,整除,是倍数...
m % n == 0 : 整除,m是n的倍数
4. == 与 !=
5. 短路运算 && ||
6. 三元运算符
其实是分支if结构简单化
--------------------------------------------------
数据类型
变量
运算符
表达式
程序结构:
顺序结构
分支结构
循环结构
1.分支结构
1. if
2. switch
-----------------------------------------------
if 分支结构
1.形式一: if 语句
1)基本语法:
if ( 条件 )
{
代码块 ; //1条,多条,0条
}
.....
2)执行流程:
如果条件成立,就执行大括号中的代码块;
条件不成立,不执行代码块的内容,执行的是
结尾大括号下面的其它语句 。
练习:
定义一个数字,判断这个数是否是奇数
是奇数打印“是奇数”,否则"不是奇数"
要求:if 语句来完成。
提示:奇数的判断:和2取余数不等于0
-------------------------------------------------
2. 形式二:if...else 语句
1) 基本语法:
if ( 条件 )
{
代码块1 ; //多条,1条,0条
}
else
{
代码块2 ;
}
2)如果条件成立,会 执行if代码块的内容;
执行完if代码块内容,else的内容一定不会执行;
如果条件不成立,会执行else代码块的内容,
而if的就不再执行。
所以:if..else 表示的是互斥关系,
执行if的内容,一定不会再执行else的内容
3)条件 ? 第1处结果 : 第2处结果 ;
4)如果if或else的代码块中只有一条语句时,
这对大括号是可以省略的.
但是省略的前提是:只有一语句时可以省略
但是不推荐省略。
练习:
改写奇数的判断。
创建 IfElseDemo1.cs
判断一个数是否是奇数,是“是奇数”,
否则打印“不是奇数”
要求:使用if..else语句实现。
补充内容:
如何断点调试?
如果想查看程序的具体执行流程(或每一步的执行
结果,就可以断点调试来实现)
step1. 在某一行的左侧(行号左侧)添加一个断点
鼠标单击,出现红色的点证明添加成功
step2. 调试 菜单 ---- 开始调试
step3. 按 F11 会逐行执行
3. if 形式三:
1)
if ( 条件1 )
{
代码块1 ;
}else if( 条件2 )
{
代码块2 ;
}else if ( 条件3 )
{
代码块3 ;
}
......
else
{
代码块n;
}
2) if...else if...else 表示对同一内容
进行的多重判断。
3)先判断是否满足条件1,如果满足,执行条件1所对应
代码块,执行完后,不会再执行其它的else if
如果条件1不成立 ,继续往下查看是否满足条件2, 如果条件2满足,执行条件2对应的代码块,不满足
继续判断其它.......
一般最后会加一个else,表示所有的条件都不满足时
才执行else 。
练习:
定义一个人的年龄,根据年龄,判断所属年龄段:
幼年:0-6
少年:7-16
青年:17-27
中年:28-60
老年:60-150
不合法数字()
------------------------------------------------
4. if 嵌套
基本语法:
if ( 条件1 )
{
if ( 条件2 )
{
}
}
如果明天是周末,就去玩;否则就去上班;
如果是周末并且天气晴朗,就去室外玩;
如果是周末但是天气不晴朗,就去室内玩。
if ( 明天是周末 )
{ //就去玩
if( 天气晴朗 )
{
室外玩
}
else //是周末但天气不晴朗
{
室内玩
}
}
else //不是周末
{
//就去上班
}
总结:
if
if..else
if..else if..else
同一条件多重判断
分数
邮费
星座
day03作业 周四
---------------------------------------------------------------
1.自由设计编码题
学习了分支语句,请考虑一下:我们生活中哪些情景,现象,
可以使用if语句来实现.
1) if...else 结构的举出一到两种案例. (尽量做)
如:如果每月工资达到2万,就有钱去谈女朋友了
如果月薪达不到2万,就得努力工作了
2) if...else if ....else if ..else 形式的请举出一到两种案例
如: 星座性别分析器
3) if嵌套形式的请举出一到两种案例 (选做)
如果明天是周末,就去玩
否则就去上班;
如果明天是周末,而且天气晴朗,就去室外玩;
如果明天是周末,但是天气不晴朗,就在室内玩
然后,针对以上您列举的生活案例,能否写出具体的实现代码.
不限内容,不限类型,不限形式.请主动编写代码实现.
2.写出下列程序的运行结果
1)
int a = 1, b = 10;
int c1 = a++;
int c2 = ++b;
Console.WriteLine(
"a=" + a + ", b=" + b +
", c1=" + c1 + ", c2=" + c2 );
2)
int i = 100, j = 200;
bool b1 = (i > j) && (i++ > 100);
Console.WriteLine(b1);
Console.WriteLine(i);
3)
int num1 = 10 ;
int num2 = ++num1 ;
Console.WriteLine( num1 );
Console.WriteLine( num2 );
int num3 = num1+=100 ;
Console.WriteLine( num1 );
Console.WriteLine( num3 );
int num4 = num1+=num2 ;
Console.WriteLine( num1 );
Console.WriteLine( num4 );
4)
class DemoTest2
{
static void Main( string[] args )
{
int x = 5;
int y = 5;
int z = 5;
x++;
Console.WriteLine(x);
Console.Write(y++);
Console.WriteLine(++z);
}
}
3.编程题.
通过控制台接收两个整数,
使用不同的方法找出两个数中的最大值。
提示:可使用条件运算符 或 Math.Max()
或 if..else语句