(C#从0到1)第五章 条件控制语句

(换一种角度思考——比较适合游戏等界面 按键切换 时使用)
5.1决策分支
了解流程图符号
两种 选择结构语句 分别是 if语 switch语句
选择结构语句也称为 条件判断语句 或者分支语句
5.2 (1种选择) if 语句
(if在C#中其实是一个关键字)
 语法
if(表达式)
{
       语句
}
(相当于如果...那么 ...)
注意:①表达式必须使用 圆括号 括起来
          ②表达式: 关系 表达式或 逻辑 表达式
          ③“语句”可以使 单语句 也可以是 复合语句
(表达式: 关系表达式 逻辑表达式 )
if语句的使用形式
01         使用 逻辑运算符 →if(表达式1 && 表达式2)
                                       {
                                            语句
                                        }
02          if(表达式)            省略大括号 (尽量不省略) if(表达式)
              {
                    单一语句            ----------------------→       单一语句
               }
注:① && 逻辑与符号
      ②(尽量不省略){}大括号为了代码可读性
练习:
解:

1.Convert.ToInt32是什么意思?干什么的?

类型转换  比如
double x=15.6612;
int y=Convert.ToInt32(x)  这就是把double类型x显式转换成int类型
也可以用   int y=(int)x 进行转换
if语句中表达式为bool(布尔)值的规范写法
bool(布尔类型变量)
如果在表达式中使用了布尔型变量,那么将根据变量值的真假而赋予整型值1或0。要把一个整数变量转换成布尔型变量,如果整型值为0,则其布尔型值为假,反之如果整型值为非0,则其布尔值为真。
运算符的使用
“=”和“==”的区别
“=”一个等号为赋值
“==”两个等号为比较
1、C语言中 2个等号为关系运算符,意思是:判断两边的值是否相等
== 关系运算符的表现形式为: 变量1 == 变量2
2、C语言中 1个等号为赋值运算符,意思是:赋值
如:x = 5,意思是将常量值5赋值给变量x
if(i&1==1)这句话表示:如果是 奇数 则
i&1 -- 按位与运算,取 2进制整数 i 的最低位,如果最低位是1 则得1,如果最低位是0 则得0。 奇数 i 的最低位 是1,偶数i 的最低位 是0。
(位与运算 : 位与 运算   的 运算符为 & ——有0即为0 )
5.2.2 (2种选择) if...else 语句
(二选一问题时运用, 如果... 否则... )
语法
if(表达式)
{
       语句1
}
else
{
       语句2
}
注:①表达式: 关系表达 或逻辑表达式
      ②“语句1或者语句2 ”可以是 单语句 也可以是 复合语句
(① 复合语句把多个语句用括号{}括起来组成的一个语句。 在程序中应把复合语句看成是单条语句,而不是多条语句。
   ②  简单语句则只有一个分号。)
if...else语句与条件运算符
if(表达式)
     语句1
else
     语句2
if...else条件控制语句和条件运算符  相似
  如果运算过程中有 2个语句 可以使用条件运算符,更加简便更推荐使用;
else不可以单独使用,必须和关键字if一起使用。
if语句多于else语句的问题
程序中使用if...else语句时,如果出现if语句多于else语句的情况,在没有特殊处理的情况下,else永远都与最后出现的if语句相匹配。
5.2.3 (多种选择) if...else    if...else  语句
if(表达式1)
{
       语句1
}
else if(表达式2)        注意:else和if之间有一个空格
{
       语句2
}
...
else if(表达式n)
{
       语句n
}
else
{
      语句n+1
}
示例
 
strName 是自定义的字符串。比如:Dim strName AS String
if选择语句时,尽量遵循以下原则:、
①使用bool变量作为 判断条件,假设bool变量flag
if(flag)          //表示为真
if(!flag)         //表示为假
错误写法
if(flag==ture)
if  (flag==false)
②使用浮点类型变量与0值进行 比较
if(d_value>=-0.00001)//这里的0.0001是d_value的精度,d_value是double类型   value表示属性或关键字
错误写法
if(d_value==0.0)
③使用if(1==a)
错误写法
if(a==1)
5.2.4   if语句的嵌套
1.if语句中嵌套if...else
if(表达式1)
{  
    if(表达式2)
  {
            //表达式2为真时执行 ......
  }
    else
  {
            // 表达式为2为假时执行.......
  }
}
2.if...else中嵌套if...else if
if(表达式1)
{  
     if(表达式2)
  {
            //表达式2为真时执行 ......
  }
    else if(表达式3)
  {
            // 表达式3为真时执行.......
  }
}
else
{
             //表达式1为假时执行......
}
if三种语句间都是可以任意互相嵌套的
练习:“四年一润,百年不润,四百年在润。”
思路:输入的数字能被4整除,而不能被100整除,能够被400整除。
小白思考步骤:
主要是什么? 想知道随意输入的年份是不是闰年。
   提示语句为”请输入一个年份:“
②用什么变量?
使用int变量,int变量为整数(1.2.3...年份为整数)变量。
③输出
Convert.ToInt32前置类型转换
四年一润,百年不润,四百年在润进行判断
这个年份是不是同时符合3个条件
先是否被4整除,再检验是否被100整除,再测试是否被400整除。
if(iYear%4==0)
{
  if(iYear%100==0)
     {
      if(iYear%400==0)
      {
      Console.WriteLine("这是闰年");
      } 
     else
      {
      Console.WriteLine("这不是闰年");
      }
     }
if语句嵌套时的{}使用问题
5.3    (多选一) switch多分支语句
switch(表达式)                   switch表达式只能是整型/char/string/bool类型
{
case常量表达式1:
          语句1;
          break;
case常量表达式2               注意:这里是冒号,不是分号  
          语句2;
          break;                    用于退出switch语句,不能省略
...
case常量表达式n;
           语句n;
           break;
default:
          语句n+1;
          break;
}
注意
①case后的各常量值不可以相同,否则会出现错误
②case后面的语句块可以多条语句,不必使用大括号{}括起来。
③case语句和default语句的顺序可以改变,但不会影响程序执行结果。
④一个switch语句中只能有一个default语句,而且default语句可以省略。
举例:
选择游戏角色 时可以使用 switch语句
switch的判断参数可以是double吗?
使用switch语句时,常量表达式的值绝不可以是浮点类型!
case标签中的break可以省略吗?
不能省略!!!
5.3.2   switch与if...else if...else的区别
 自己动手尝试
 题目
switch语句结果
(自己尝试版本)
对应老师修改——写完整一些
if...else if...else语句

おすすめ

転載: blog.csdn.net/m0_56017939/article/details/121561898