学习C#之条件判断语句

一、单向判断if

  • 单向判断:对某一种符合的情况作相应的操作
  • 样式:
    * if(真假表达式){
    * 操作语句
    * }
  • 执行流程:首先判断真假表达式的真假,若为真,则进入{ }执行里面的操作语句。若为假,则直接跳过if语句。

  • 当if条件判断只包含一个单条语句作为操作语句时,可以省略if的{ },系统会自动识别这条语句被if包含。

  • 若if条件判断包含多条语句即代码块做为操作语句时,代码块必须放在if后的{}内,否则系统只能识别第一条语句被if包含,其余均为独立语句与if无关。
//成绩
float score = 58;
if (!(score < 60))
{
Console.WriteLine("当前学生成绩及格。");
Console.WriteLine(score);
}

二、双向判断if…else

  • 双向判断:对是否满足条件判断的两个方向做出相应的处理
  • 样式:
    * if(真假表达式){
    * 操作语句1
    * }
    * else{
    * 操作语句2
    * }
  • 执行流程:先判断表达式的真假,若为真,则进入if{ }执行操作语句1,跳过else{ }。若为假,则跳过if{ },执行else{ }中的操作语句2。
Console.WriteLine("请输入任意一个正整数:");
uint num = uint.Parse(Console.ReadLine());
if (num % 3 == 0 && num % 7 == 0)
{
Console.WriteLine("{0}既是3的倍数又是7的倍数", num);
}
else
{
Console.WriteLine("{0}不是3和7的共同倍数", num);
}
Console.WriteLine();
Console.WriteLine("请输入任意一个三位数:");
int n = int.Parse(Console.ReadLine());
//获取n的绝对值
int tmp = Math.Abs(n);
//获取当前数值的个位数
int singleDigit = tmp % 10;
//获取当前数值的十位数
int tenDigit = tmp / 10 % 10;
//判断该数是否满足条件
if (singleDigit + tenDigit == 10)
{
Console.WriteLine("{0}符合十位数和个位数相加之和为10的条件。", n);
}
else 
{
Console.WriteLine("{0}不符合十位数和个位数相加之和为10的条件。", n);
}

二、多向判断if…else if…else

  • 多向判断:对一个事物可能出现的多种情况做指定的处理
  • 样式:
    * if(真假表达式1){
    * 代码块1
    * }
    * else if(真假表达式2){
    * 代码块2
    * }
    * else if(真假表达式3){
    * 代码块3
    * }
    * ……对应多种情况可以有任意多个else if 根据实际情况进行处理
    * else{ //需要对以上各种情况均不满足的相反方向做指定操作,就添加else。否则无需处理else。
    * 代码块4
    * }
  • 执行流程:首先判断表达式1的真假,若为真,则执行代码块1,然后跳出if语句。若为假,则跳过代码块1,判断表达式2的真假,若为真,则执行代码块2,然后跳出if语句。若为假,则也跳过代码块2,继续向下判断表达式3的真假,逻辑同上,直到遇到某种为真的情况,或者遇到else,或者没有else也没有任何符合情况,跳出if语句。
Console.WriteLine("请输入当前学生的成绩:");
float stuScore = float.Parse(Console.ReadLine());
//判断当前成绩是否在有效范围
if (stuScore < 0 || stuScore > 100)
Console.WriteLine("当前成绩无效,请退出程序重新输入。");
else 
{
//嵌套条件判断
if (stuScore >= 90)
{
Console.WriteLine("优秀");
}
else if (stuScore >= 80)
{
Console.WriteLine("良好");
}
else if (stuScore >= 60)
{
Console.WriteLine("及格");
}
else
{
Console.WriteLine("不及格");
}
}

四、switch语句

if和switch都属于条件判断语句。但是能用switch语句处理的操作,都能通过if语句处理。而通过if语句能处理的操作未必能通过switch语句处理。

  • switch使用场景:当需要对一个表达式的多种值的情况做特定的处理时,就使用switch语句。
  • if语句使用场景:通常用来进行少数的条件判断或区间判断。
  • 样式:
    * switch(表达式1)
    * {
    * case 分支表达式1:
    * 代码块1;
    * break;
    * case 分支表达式2:
    * 代码块2;
    * break;
    * ……..
    * default:
    * 代码块3;
    * break;
    * }
  • switch执行流程:首先计算表达式1的值,然后判断选择分支,找到对应表达式1的值得分支,然后执行对应的代码块,跳过其它分支,退出switch。若没有符合条件的值,则若存在default,则执行default中的代码块,否则直接跳出switch。
  • 注意:
  • switch之后的()中写入要判断对应值情况的表达式。各个分支对应的是其上表达式的需要操作的值,因此分支表达式的值类型必须与switch之后表达式的值类型相同。
  • 各分支语句之后的表达式,必须是常量或者由常量和运算符组成的能得出唯一值得表达式。
  • 各分支不能出现分支值相同的情况,必须不同。

break

  • 作用:在switch语句中用来终止跳出当前switch语句
  • 不可以省略break的情况:当当前分支包含独立的代码块语句实现时,那么该分支必须要有自己的break。不可以省略
  • 可以省略break的情况:当多个连续的分支,共用相同的代码块实现,那可以将代码块写在连贯的最后一个分支中,其上的分支就可以省略break,系统会自动向下找到对应的代码块实现。
//输入一个在1-7之间的数字,判断输出当天是星期几。
Console.WriteLine("请输入一个1-7之间的数字,描述今天是星期几:");
//获取输入
int num = int.Parse(Console.ReadLine());
//选择判断
switch (num) {
case 1:
{
int nn = 10;
Console.WriteLine("星期一");
}
break;
case 2:
{
int nn = 5;
Console.WriteLine("星期二");
}
break;
case 3:
Console.WriteLine("星期三");
break;
case 4:
Console.WriteLine("星期四");
break;
case 5:
Console.WriteLine("星期五");
break;
case 6:
Console.WriteLine("星期六");
break;
case 7:
Console.WriteLine("星期日");
break;
default:
Console.WriteLine("输入错误,请退出程序重新输入。");
break;
}
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值