一、异常捕获
1、异常:语法上没有错,但在程序运行的过程中,由于某些原因,程序出现错误
如果想要程序变得坚强一些,代码中应该经常性的使用try catch
哪行代码有可能出异常就try一下
try和catch中间不能有其他代码出现!!!
2、语法:
try{可能出现异常的代码}
catch{出现异常后要执行的代码}
3、执行过程:
如果try中的代码没有出现异常,那么catch中的代码不会执行。如果try中的代码出现了异常,那这行出现异常的代码后面所有代码都不会执行,直接跳到catch中执行代码。
double num = 0;
bool b = true;
//将用户输入的数字乘以二再输出(try catch练习)
Console.WriteLine("请输入你的数字");
try
{
num = Convert.ToDouble(Console.ReadLine());//声明并接受用户输入
}
// double num =Convert.ToDouble(Console.ReadLine());//声明并接受用户输入
catch
{
Console.WriteLine("只能输入数字哦");
b = false;
}
if(b)//有个问题 我写的if(b=true)
//但是运行时输入字母还是走了这段if代码,然后改成(b)就好了
{
Console.WriteLine("你的幸运数字是:{0}", (num + 1) * 2);
}
// Console.WriteLine("你的幸运数字是:{}", (num + 1) * 2);
//如果出现异常,控制台运行catch里面的代码,这句代码也不用执行了
//最好直接将这行代码放在try里面,但是为了练习bool,我们换一个做法
Console.ReadLine();
注意:异常捕获的代码是最后加进去的,因为我们写代码的时候自己也不知道哪里可能出异常
//momo年终工作评定,A级则工资涨500元;B级则涨200元;C级工资不变
//D级工资降200元;E级工资降500元
//设momo原工资为五千,请老板输入momo的评级,并且显示来年工资
bool i=true;
int salary = 5000;
string level = "";
Console.WriteLine("请输入momo的评级");
level=Console.ReadLine();
if (level == "A")
{
salary += 500;
}
else if (level=="B")
{
salary += 200;
}
else if (level == "C")
{
//工资不变
}
else if (level =="D")
{
salary -= 200;
}
else if(level=="E")
{
salary -= 500;
}
else
{
Console.WriteLine("输入ABCDE中的字母哦");
i = false;
}
if (i == true)
{
Console.Write("momo明年工资为{0}", salary);
}
Console.ReadLine();
二、switch-case 用来处理多条件的定值判断
语法:
switch(变量或者表达式的值)
{
case 值1:要执行的代码;
break;
case 值2:要执行的代码;
break;
case 值3:要执行的代码;
break;
...
default:要执行的代码;
break;
}
执行过程:
程序执行到switch处,首先将括号中“变量或者表达式的值”计算出来,然后用这个值和后面case后的值匹配,一旦匹配成功,则执行case后面的代码,有break则跳出switch-case结构。
如果跟每个case后的值都不匹配,如果有default中的语句,则执行default中的语句,如果没有,则该switch-case什么也不做。
//momo年终工作评定,A级则工资涨500元;B级则涨200元;C级工资不变
//D级工资降200元;E级工资降500元
//设momo原工资为五千,请老板输入momo的评级,并且显示来年工资
string level = "";//评级变量
int salary = 5000;//momo初始工资
Console.WriteLine("请老板给momo年终评级");
level = Console.ReadLine();
bool b=true;
switch (level)
{
case "A": salary += 500;
break;
case "B": salary += 200;
break;
case "C": salary+=0;
break;
case "D": salary -= 200;
break;
case "E": salary -= 500;
break;
default:
b=false;
Console.WriteLine("请输入ABCDE中的字母哦");
break;
}
if (b)
{
Console.WriteLine("momo明年工资为{0}", salary);
}
Console.ReadLine();
//让用户输入姓名,然后显示出这个人上辈子是干嘛的
bool b = true;
Console.WriteLine("请输入柯南作品中女角色姓名");
string name = "";
name=Console.ReadLine();
switch(name)
{
case "小兰": Console.WriteLine("新一"); break;
case "灰原哀": Console.WriteLine("柯南"); break;
case "和叶": Console.WriteLine("大版黑鸡"); break;
case "妃英里": Console.WriteLine("毛利"); break;
case "佐藤": Console.WriteLine("高木"); break;
case "有希子": Console.WriteLine("工藤优作"); break;
case "园子": Console.WriteLine("京极真"); break;
case "明美": Console.WriteLine("秀一"); break;
default: Console.WriteLine("请检查以下你的输入"); b = false; break;
}
if(b)
{
Console.WriteLine("等待越长久,重逢时也就越幸福");
}
Console.ReadLine();