需求更大的--if条件判断
现实生活中我们,绝大多数情况下,我们判断1个条件 并不是说仅仅是要得到这个结果, 而是要根据这个结果做出不同的反应,
但是比较表达式和逻辑表达式他们是用来判断1个或者多个条件是否成立的,那我们怎么办咧?
在代码中的需求.有1段代码不是非要执行,而是在满足某个条件的时候才执行.
如果不满足就不执行.
if结构的作用就是来实现这个需求的.
1.0 if的语法:
if(bool表达式)
{
执行代码
}
???什么是bool表达式: 表达式的结果如果是bool类型的 那么它就是1个bool表达式.
比较表达式 逻辑表达式都是bool表达式
例如:
//从键盘上输入一个值,如果这个值在区间[0,100]里,则加上1000,否则不加。最后输出结果。 Console.WriteLine("请输入1个值:"); string str = Console.ReadLine(); int num = int.Parse(str); if (num >= 0 && num <= 100) { num += 1000; } Console.WriteLine(num);
条件:
num >= 0 && num <= 100
b. 执行步骤
先计算bool表达式的结果.
如果结果为true 就执行if块中的代码.然后继续往下执行.
如果结果为flase 就跳过if块中的代码 往下执行.
c. 注意的细节:
if的小括弧中必须是1个bool表达式. 其他的类型是不行的.
d. 什么时候使用if结构?
如果有1段代码不是非要执行 只有在满足某个条件的时候执行 那么就可以使用if结构.
又比如:
//请写1个程序 让用户输入密码 如果密码不是"888888" 就提示错误. 否则什么都不做. Console.WriteLine("请输入密码:"); string pwd = Console.ReadLine(); //什么时候才要将用户的输入转换为数值类型. 如果这个数据需要参与算术运算 或者 比较运算中的比大小. //如果是比相等 或者 不等 就没有必要转换了 因为字符串也可以比相等或者不等. if (pwd != "888888") { Console.WriteLine("密码错误"); } Console.WriteLine("OVER");
2.0 需求升级
if结构的缺点:
只能在条件成立的时候 执行指定的代码
新的需求:
条件成立执行1段代码 条件若不成立 要执行另外的1段代码.
if-else结构
??? 干嘛的? 可以实现这样的需求: 条件成立执行1段代码 条件若不成立 要执行另外的1段代码.
a. 语法
if(bool表达式)
{
执行代码
}
else
{
执行代码;
}
b. 执行步骤.
计算bool表达式的结果.
如果结果为true。就执行if中的代码.不会执行else中的代码.
如果结果为false 就执行else中的代码 不会执行if中的代码.
各自执行完毕以后 就继续往下执行,.
c. 注意的细节.
1). if后面的小括弧中必须是1个bool表达式.
2). if和else是在一起的 中间不能插入任何代码.
3). if和else中的代码不可能都同时执行 也不可能都不执行. 因为bool表达式的而结果只有两个.
4) if的小括弧后面没有分号.
d. 总结
什么时候使用使用if-else结构.
我们希望 条件成立执行1段代码 条件若不成立 要执行另外的1段代码.
if(条件)
{
成立的时候执行的代码
}
else
{
不成立的时候执行的代码.
}
来来来走一个:
//请用户输入用户名和密码. 如果用户名是"admin"并且密码是"888888" 就提示 验证成功 否则就提示 验证失败 Console.WriteLine("请输入用户名:"); string userName = Console.ReadLine(); Console.WriteLine("请输入密码:"); string pwd = Console.ReadLine(); if (userName == "admin" && pwd == "888888") { Console.WriteLine("验证成功"); } else { Console.WriteLine("验证失败"); }
3.0 呵呵需求再次升级,(好像生活一样每天有新的需求!生活才好玩!)
if-else结构的缺点.
只能判断1个条件.
我们新的需求: 需要判断多个条件.并且根据不同的条件成立来执行不同的代码.
if-else if-else结构.
a. 语法
if(bool表达式1)
{
执行代码
}
else if(bool表达式2)
{
执行代码
}
else if(bool表达式3)
{
执行代码
}
else
{
执行代码,.
}
执行步骤
从上到下的依次判断每1个bool表达式. 只要有1个为true,就执行其中的代码,执行完毕以后 立即结束整个结构.
如果判断的结果为false 再判断下1个bool表达式.
当所有的条件都不成立的时候 就执行else中的代码.
例如:
//输入土豪的儿子的成绩. 大于90分的话 我们就奖励 保时捷. // 80-89 奔驰汽车 // 70-79 东风日产 // 60-69 拖拉机. // 30-59 打屁股 // 30以下 断绝父子关系!!!~~~. Console.WriteLine("请输入土豪的儿子的成绩:"); int score = Convert.ToInt32(Console.ReadLine());//99 if (score >= 90) { Console.WriteLine("奖励奔驰汽车..."); } else if (score >= 80) { Console.WriteLine("奖励保时捷汽车"); } else if (score >= 70) { Console.WriteLine("奖励东风日产"); } else if (score >= 60) { Console.WriteLine("奖励拖拉机..."); } else if (score >= 30) { Console.WriteLine("打屁股"); } Console.WriteLine("OVER");