知识点:逻辑运算符、多重if语句、嵌套if语句
1、逻辑运算符
练习1:逻辑或、逻辑与运算符的使用
本次计算机考试成绩规定:笔试成绩等于100分且机试成绩大于等于60分,或笔试成绩大于等于60分且机试成绩等于100分, 输出“成绩优秀”, 否则输出“继续努力”
static void Main(string[] args)
{
/*
*用程序描述 :
* 笔试成绩等于100分且机试成绩大于等于60分,
* 或笔试成绩大于等于60分且机试成绩等于100分
* 输出“成绩优秀”
* 否则输出“继续努力”
*/
Console.Write("请输入笔试成绩:");
double written = double.Parse(Console.ReadLine());
Console.Write("请输入机试成绩:");
double lab = double.Parse(Console.ReadLine());
if (written == 100 && lab >= 60 || written >= 60 && lab == 100)
{
Console.WriteLine("成绩优秀");
}
else
{
Console.WriteLine("继续努力");
}
Console.ReadLine();
}
运算符的优先级:
- 最高的优先级:小括号,即()
- 最低的优先级:赋值运算符,即=
- 优先级顺序:! > 算术运算符 > 比较运算符 > && > ||
- 当运算符较多,无法确定运算符执行顺序时,可以使用小括号控制一下顺序,如(written == 100 && lab >= 60) || (written >= 60 && lab == 100)
练习2:逻辑非运算符的使用
判断输入天气,不下雨就集合,下雨则不集合
static void Main(string[] args)
{
Console.WriteLine("请输入天气情况:(下雨、晴天、阴天)");
string weather = Console.ReadLine();
if (!(weather == "下雨"))//逻辑非运算符,当条件为真时,结果为假
{
Console.WriteLine("集合");
}
else
{
Console.WriteLine("不集合");
}
Console.ReadLine();
}
2、多重if语句
大家在使用选择结构时,还会遇到不止判断一次的情况,这里有个例子:对学员的结业考试成绩进行评测,如果成绩大于等于90分,输出“优秀” 如果成绩大于等于80分,输出“良好” 如果成绩大于等于60分,输出“及格” ,如果成绩小于60分,输出“不及格”。分析这个示例,示例中先要判断成绩大于等于90的情况,没有90再判断成绩大于等于80的情况,没有80再判断成绩大于等于60的情况,最后是没有60的情况。程序至少要判断三次。多重选择结构可以处理这种多重判断的情况。
多重if语句的语法结构:
注意:示例中进行了两次判断,实际上多重选择结构可以进行任意多次判断,也就是说中间可以加任意多的else if子句。
static void Main(string[] args)
{
/*
*如果成绩大于等于90分,输出“优秀”
*如果成绩大于等于80分,输出“良好”
*如果成绩大于等于60分,输出“及格”
*如果成绩小于60分,输出“不及格”
*/
Console.Write("请输入考试成绩:");//输出提示信息后不换行
double score = double.Parse(Console.ReadLine());//将用户输入的成绩转换为double类型后,赋值给变量score
if (score >= 90)
{
Console.WriteLine("优秀");
}
else if (score >= 80)
{
Console.WriteLine("良好");
}
else if (score >= 60)
{
Console.WriteLine("及格");
}
else
{
Console.WriteLine("不及格");
}
Console.ReadLine();//等待用户输入
}
多重选择结构对于初学者来说,是非常容易出错的知识点,这里提醒一下大家:
- 多重选择结构中每个条件判断成立后,程序会运行条件后面的代码然后结束,不会再进行后面的判断,只有不成立的情况下,才会判断后面的条件。
- 条件的设置的顺序是:把难满足的条件放前面,容易满足的条件放后面,否则可能出错:如果把条件成绩大于等于60放前面,大于等于80放后面,那么90分的成绩,在判断时先满足前面的条件,后面的条件不会进行判断了,90分就是中等了。
应用:多重if特别适合某个变量处于某个连续区间时的情况(如学习成绩判断、商场消费赠礼)
代码练习:
用程序描述如下问题:某商场促销,如果客户消费满300元,打7折,消费200元以上,打8折,消费100元以上,打9折,其余按原价计算。
3、嵌套if语句
学校举行运动会,百米赛跑成绩在 12 秒以内的学生有资格进决赛,根据性别分为男子组和女子组,大于12秒就淘汰。分析下示例,大家会发现:首先,要判断是否能够进入决赛,在确定进入决赛的情况下,再判断是进入男子组,还是进入女子组。这种一个条件成立的情况下,再进行另一个条件判断的结构,就需要用嵌套选择结构完成。
嵌套if语句
static void Main(string[] args)
{
/*
* 学校短跑比赛,如果比赛成绩小于等于12秒,进入决赛。
* 如果是男生,进入男子组决赛,如果是女生,进入女子组决赛。
* 如果比赛成绩大于12秒,则淘汰!
*/
Console.WriteLine("请输入比赛成绩:");
int result = int.Parse(Console.ReadLine());
if (result <= 12)
{
Console.WriteLine("请输入选手性别:");
string gender = Console.ReadLine();
if (gender == "男")
{
Console.WriteLine("进入男子组决赛");
}
else
{
Console.WriteLine("进入女子组决赛");
}
}
else
{
Console.WriteLine("淘汰");
}
Console.ReadLine();//等待用户输入
}
代码练习:
用程序描述如下问题:某商场促销,如果客户消费满1000元,打8折,同时如果是普通会员送100元代金券,如果是VIP会员送200元代金券;不满1000元,无论是否会员均按全价计算。