C#基础_选择结构和循环结构、三元运算符(五)

关系运算符 > >= < <= !=  ==
         对数值的运算 ,结果返回的是 bool值

逻辑运算符  &&  ||  !
    && :逻辑与,前后都为TRUE 结果为TRUE
    ||    : 逻辑或,有一个为TRUE,结果为TRUE
    !  : 逻辑非,取反,TRUE取反是FALSE

 三元运算符:

   数据类型  变量名 = 表达式 ? 表达式1:表达式2;

三元运算过程: 如果表达式结果为TRUE,表达式1的结果赋值给变量,

                    如果表达式结果为FALSE,表达式2的结果赋值给变量

表达式:结果是bool值,可以是bool值,或者是关系表达式或是逻辑运算表达式

表达式2和表达式1的结果的数据类型要和变量的数据类型一致

int num = true ? num1: num2;

 


选择结构 if

If(判断条件)
{            
执行语句;
}
else if(判断条件)
{执行语句;}
else
{执行语句}

判断条件:
1. bool值,关系表达式或者逻辑表达式得到的的结果是bool值
2. 只能在if后才能加判断条件
互斥性:
if ---else if ---else 只能执行其中一个执行语句,如果满足前边的条件,后边的就不再判断

 

两个练习题:

 1  //  如果小明的(chinese  music)
 2             //  1. 语文成绩大于90并且音乐成绩大于80
 3             //  2.语文成绩等于100并且音乐成绩大于70,则奖励100元.
 4             int chinese1 = Convert.ToInt32(Console.ReadLine());
 5             int music = Convert.ToInt32(Console.ReadLine());
 6             mb = (chinese1 > 90 && music > 80) || (chinese1 == 100 && music > 70);
 7             if (mb)
 8             {
 9                 Console.WriteLine("得到100元奖励。");
10             }
11 
12             //让用户输入用户名和密码,如果用户名为admin,密码为mypass,则提示登录成功.
13             string user = Console.ReadLine();
14             string password = Console.ReadLine();
15             if (user == "admin" && password == "mypass")
16             {
17                 Console.WriteLine("登录成功");
18             }
练习题

 


 

Switch – case
语法结构:
Int num = 1 ;
Switch(num)
{
    case  1:
        执行语句;
                   break;
    case  2:
        执行语句;
                   break;
    ……..
    default:
    break;
}
1.Switch case针对的是单个值的比较,如果比较范围if更加方便
2.从上向下逐个比较,如果都不满足就执行默认default
3.Case穿透:如果满足case 1:条件,但是在case 1下没有break,那么在执行完case 1,不能结束结构,继续向下执行case 2,直到遇到break结束结构,可以应用于几个值执行相同的的执行语句

 

 1  /* 
 2             * 李四的年终工作评定,如果定为A级,则工资涨500元,如果定为B级,
 3             * 则工资涨200元,如果定为C级,工资不变,如果定为D级工资降200元,
 4             * 如果定为E级工资降500元.设李四的原工资为5000,请用户输入李四
 5             * 的评级,然后显示李四来年的工资.
 6             */
 7             double salary = 5000;
 8             Console.WriteLine("请输入李四的工作评定等级:");
 9             string level = Console.ReadLine();
10             switch (level)
11             {
12                 case "A":
13                     salary += 200;
14                     Console.WriteLine(salary);
15                     break;
16                 case "B":
17                     salary += 500;
18                     Console.WriteLine(salary);
19                     break;
20                 case "C":
21                     salary += 1000;
22                     Console.WriteLine(salary);
23                     break;
24 
25                 default:
26                     break;
27             }
练习题

 


 

循环结构for

  对特定条件进行判断,满足则执行循环体,用于将某个语句或语句块重复执行预定次数。
语法:
    for(初始化;条件;增减变量)
    {
            循环体
    }
1.初始化:int I = 0; i是计次变量,用来记录循环多少次的
2.判断条件: 判断循环是否继续执行,TRUE继续,FALSE结束循环结构
3.增减变量:用来控制变量变化,控制循环执行次数的
4.循环体:循环每次要执行的语句

 1   //练习1.求出100-999之间的水仙花数
 2             //水仙花数: 这个三个位上的数的立方和等于这个数本身
 3             for (int i = 100; i < 1000; i++)
 4             {
 5                 //分别求出三位上的数
 6                 int bai = i / 100;
 7                 int shi = (i % 100) / 10;
 8                 int ge = i % 10;
 9                 int num = bai * bai * bai + shi * shi * shi + ge * ge * ge;
10                 if (num == i)
11                 {
12                     Console.WriteLine(i + "是水仙花数");
13                 }
14             }
for循环练习题
 1  // 1~100之间的整数相加,得到累加值大于20的当前数(比如:1+2+3+4+5+6=21)结果6
 2             sum = 0;
 3 
 4             for (int i = 1; i < 100; i++)
 5             {
 6                 sum += i;
 7                 if (sum > 20)
 8                 {
 9 
10                     Console.WriteLine("累加值大于20的当前数{0}", i);
11                     break;
12                 }
13             }
for循环练习2

 

 

 


循环结构while

 条件表达式为true,则执行循环体,用于次数不确定的情形。
语法:
    while(循环条件)
    {
           循环体
    }
1.循环条件:判断循环是否执行,TRUE继续,FALSE结束
2.循环体:执行语句 和 控制变量语句
3.在变量外部声明变量 int I = 0;也是计次和for相似

 

  while (false) //循环条件
            {
                //循环体
            }
            //当满足循环条件,执行循环体,循环条件为true,就是死循环

 

 1 /*
 2              练习1: 求1到100的和
 3              *练习2: 100内偶数的和
 4              */
 5            int   i = 1;
 6             int sum = 0;
 7             while (i>=1)
 8             {
 9                 sum = sum + i;
10                 i++;
11             }
练习题:

 

 1 //练习1:循环录入5个人的年龄并计算平均年龄,如果录入的数据出现负数或大于100的数,立即停止输入并报错.
 2    int sum = 0;
 3             for (int i = 0; i < 5; i++)
 4             {
 5                 Console.WriteLine("输入第{0}个人的年龄", i);
 6                 bool b = true;
 7                 try
 8                 {
 9 
10                     int age = Convert.ToInt32(Console.ReadLine());
11                     if (age >= 0 && age <= 100)
12                     {
13                         sum += age;
14                     }
15                     else
16                     {
17                         //给一个提示 结束程序
18                         Console.WriteLine("输入年龄不在范围内,程序结束");
19                         b = false;
20                         break;
21                     }
22 
23                 }
24                 catch
25                 {
26                     Console.WriteLine("输入年龄不正确有误,程序结束");
27                     b = false;
28                     break;
29 
30                 }
31                 if (b)
32                 {
33                     Console.WriteLine("5个人的年龄平均年龄{0}", sum / 5);
34                 }
35 
36             }
37 
38 
39             // 1~100之间的整数相加,得到累加值大于20的当前数(比如:1+2+3+4+5+6=21)结果6
40             sum = 0;
41 
42             for (int i = 1; i < 100; i++)
43             {
44                 sum += i;
45                 if (sum > 20)
46                 {
47 
48                     Console.WriteLine("累加值大于20的当前数{0}", i);
49                     break;
50                 }
51             }
while练习2
 1 //练习2:在while中用break实现要求用户一直输入用户名和密码,只要不是admin、88888就一直提示要求重新输入, 如果正确则提登录成功.
 2 
 3    while (true)
 4             {
 5                 Console.WriteLine("请输入用户名 :");
 6 
 7                 string s = Console.ReadLine();
 8                 Console.WriteLine("请输入密码 :");
 9 
10                 string ss = Console.ReadLine();
11                 if (s == "admin" && ss == "88888")
12                 {
13                     //如果成立
14 
15                     Console.WriteLine("登录成功,结束程序");
16                     break;
17                 }
18                 else
19                 {
20                     Console.WriteLine("用户名或者密码错误,重新输入");
21                 }
22             }
23 
24             int n = 0;
25             for (; ; Console.WriteLine("请++++++++++++++++++++"), Console.WriteLine("请++++++++++++++++++++"), Console.WriteLine("请++++++++++++++++++++"))
26             {
27                 Console.WriteLine("请输入用户名 :");
28 
29                 string s = Console.ReadLine();
30                 Console.WriteLine("请输入密码 :");
31 
32                 string ss = Console.ReadLine();
33                 if (s == "admin" && ss == "88888")
34                 {
35                     //如果成立
36 
37                     Console.WriteLine("登录成功,结束程序");
38                     break;
39                 }
40                 else
41                 {
42                     Console.WriteLine("用户名或者密码错误,重新输入");
43                 }
44             }
while练习3

 


 

 循环结构 do---while

 

 

 执行语句块中的语句,直到条件表达式为false。
与while语句区别:
    -- while语句先判断条件,满足时执行循环体。
    -- do while语句先执行循环体,满足条件再次执行。
语法:
    do
    {
        循环体
    } while(条件);
1.一定会执行一次方法体,例如在银行取钱一样,需要先操作在进行判断是否密码正确

 

 

 1  /*明天小兰就要登台演出了,老师说再把明天的演出的歌曲唱一遍,
 2              * 如果满意,小兰就可以回家了.否则就需要再练习一遍,
 3              * 直到老师满意为止.(y/n)
 4             */
 5             Console.WriteLine("是否老师满意:yes/no");
 6             string answer;
 7             do
 8             {
 9                 Console.WriteLine("小兰唱一遍,询问老师是否满意");
10                 answer = Console.ReadLine();
11             } while (answer=="no");
12 
13 
14             do
15             {
16                 //循环语句
17             } while (false );//循环条件
18             //先执行do中循环体,再判断dowhile 中的循环条件,如果成立执行循环体,不成立结束
练习题

 

posted @ 2018-06-10 15:42  CeasarH  阅读(612)  评论(0编辑  收藏  举报