----------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
l 判断结构if
l 判断结构if-else
l 判断结构if-else-if
l 判断结构switch-case
1.判断结构If结构:
基本语法: if(条件)
语句1;
要求括号内的条件的运算值必须是bool类型,即只能是true或者false。
执行过程:先判断条件,如果结果为true则执行语句1;如果括号内是bool值而非条件,则程序跳过该语句。如果条件为false,则跳过语句1;语句1可以是语句块,用一对儿大括号来组成,如下:
{Console.WriteLine("您输入的账号或密码错误找回密码");Console.WriteLine("找回密码"); }
{语句1;语句2;......}
一般情况下即使只有一句语句,也加大括号,作为一种规范。
执行过程如图:
2.判断结构if -else 结构:
语法:
If(条件)
{语句块1};
else
{语句块2};
执行过程:如果条件中bool判定值为true,则执行语句块1中的内容,完成之后跳过语句块2,;如果条件中bool判定值为false,则跳过语句块1,执行语句块2. 执行过程如图:
3.判断结构if-else if 结构:
语法: if(条件1)
{语句块1};
else if(条件2)
{语句块2};
else if(条件3)
{语句块3};
else...
执行过程图:
只有true条件下的语句块才会执行,并且执行完该语句块后就会跳出if else 结构;否则继续往下寻找条件,而只有所有条件判定为假时才会输出最后else中的内容,如果最后没有else,则这段程序不会输出。
else与其上离其最近的if配对,有大括号圈起来除外。一定要记得写大括号,防止排版混乱发生错误。
例如:
int age = 18;
char sex = '女';
if (age < 18)
if (sex == '女')
Console.WriteLine("你还小");
else
Console.WriteLine("你长大了");
错误的排版,什么都不输出。
正确的排版,输出“你长大了”。记得大括号。
int age = 18;
char sex = '女';
if (age < 18)
{
if (sex == '女')
Console.WriteLine("你还小");
}
else
Console.WriteLine("你长大了");
Ctrl+k+F 自动排版
5.Switch-case语法结构:
基本语法:
Switch(变量/表达式)
{
case变量值1:
语句1
break;
case变量值2:
语句2
break;
case变量值3:
语句3
break;
....
default:
报错语句!
break;
}
执行过程图如下:
要求变量的值为定值(不是定值还是用if else类语句);default只有在上述case中找不到变量值时才会输出,与它所处的位置无关;case后的:和break为语句格式,不可丢失。
Console.WriteLine("请输入您的评级!A-E");
string input = Console.ReadLine();
decimal salary = 5000m;
bool flag=false;
switch (input)
{
case "A":
salary += 500;
break;
case "B":
salary += 200;
break;
case "C":
break;
case "D":
salary -= 200;
break;
case "E":
salary -= 500;
break;
default:
Console.WriteLine("您的输入有问题");
flag = true;
break;
}
if (flag == false)
{ Console.WriteLine("您的工资为" + salary); }
上面代码中,定义了一个bool类型的变量flag,如果执行switch大括号中的内容,并且未曾找到需求的值,则执行default并且flag值被重新赋值为true,这个时候将不再执行switch外的语句;反之,如果找到,则跳出来执行最下边的语句。这种重新赋值的条件显示技巧经常用到,也一般定义bool类型的变量。
如果变量的某些值要求输出的语句块相同,则可以写成如下格式:
case a: case b: case c:...
语句块;
break; 例如下:
Console.WriteLine("请输入您要查看的年份");
int year = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("请输入您要查看的月份");
int month = Convert.ToInt32(Console.ReadLine());
switch (month)
{
case 1:case 3:case 5:case 7:case 8:
case 10:case 12:
Console.WriteLine("31");
break;
case 2:
if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0)
{ Console.WriteLine("29"); }
else
{ Console.WriteLine("28"); }
break;
case 4:
case 6:
case 9:
case 11:
Console.WriteLine("30");
break;
default:
Console.WriteLine("您输入的数字有误");
break;
6.switch 与if -else if 区别:
switch语法运行时要求括号内的变量有确定的值,而它的运行过程也可以理解为一个寻找过程;if-else if 语法括号内是条件,可以是运算后为某一确定的值,也可以是范围。简而言之:
switch 确定的值 if-else if 范围或者确定的值
补充:对于switch后面括号内的变量运算要活学活用,如下:
Console.WriteLine("请输入您的成绩");
int score = Convert.ToInt32(Console.ReadLine());
switch (score/10)
{
case 10:
case 9:
Console.WriteLine("A");
break;
case 8:
Console.WriteLine("B");
break;
case 7:
Console.WriteLine("C");
break;
case 6:
Console.WriteLine("D");
break;
default:
Console.WriteLine("E");
break;
}
此题中设定 90=<score<=100 为A; 80=<score<90 为B;...等等,虽然用if else if为一般思路,但是switch也可以编译出来。Console.WriteLine("请输入您的成绩");
int score= Convert.ToInt32(Console.ReadLine());
if(score>=90)
{Console.WriteLine("A");}
else if (score>=80)
{Console.WriteLine("B");}
else if (score>=70)
{Console.WriteLine("C");}
else if (score>= 60)
{ Console.WriteLine("D"); }
else
{ Console.WriteLine("E"); }
对比之下依熟练度选择。
---------------------- ASP.Net+Android+IOS开发、 .Net培训、期待与您交流! ----------------------