c#的if判断与异常处理
判断语句:if---else if ---else【如果--否则---其他,另外的】 , 异常处理语句:try---catch---finally【尝试---拦截----最终】
//判断闰年:闰年也就是二月份有29天,普通闰年:bai能被4整除但du不能被100整除,世纪闰年:能被400整除的为世纪闰年。 Console.WriteLine("请输入闰年:"); int year = Convert.ToInt32(Console.ReadLine()); //三目运算符:数据类型 变量 = 表达式1?表达式2:表达式3 (意思是如果表达式1成立,那么表达式2赋值给变量,不成立就把表达式3赋值给变量)这里只是学习三目运算符才这样写,三目运算符是if...else的简化写法 bool tr = (year % 400 == 0) || (year % 4 == 0 && year % 100 != 0) ? true : false;//%取余数,bool类型返回值是true和false常用于if判断里面 if (year <= 0) { Console.WriteLine("你输入的:" + year + "不大于0");// 只是利用if的分支语句进行判断 } else if (tr == true) { Console.WriteLine("你输入的年份:" + year + "是闰年"); } else { Console.WriteLine("你输入的:" + year + "不是闰年"); } try//主体代码块有可能发生的异常,【尝试】 { try { //语句抛出异常 throw new Exception("错误信息");//强制抛出异常用:throw new Exception("错误信息"); 可以用于try中自己需要抛出的异常。之后就会执行catch里面的代码。 } catch { throw;//向外抛出异常只能用于catch,如果没有则外面无法获取当前异常。 } } catch (Exception ex)//处理异常,获取try发生异常后会跳转到这里,如果未抛出异常则不执行,Exception是获取所有的异常 { Console.WriteLine(ex.StackTrace);//获取异常的错误路径位置ex.StackTrace和ex.ToString()是一样的 Console.WriteLine("获取异常信息:" + ex.Message);//获取异常信息 } finally { Console.WriteLine("不管有没有发生异常都会执行,等待try执行完成后才会执行,如果有catch必须写在其后"); } Console.ReadLine();//用输入来暂停
三目运算符:【条件?满足:不满足】
int i = 0; var a = i == 1 ? "满足条件" : "不满足条件"; //判断i是否等于1 Console.WriteLine(a);//类似于if判断:if(i==1)
switch...case结构体【转换---实例】
Console.WriteLine("请输入年份:"); try { int year = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("请输入月份:"); try { int monty = Convert.ToInt32(Console.ReadLine()); if (monty >= 1 && monty <= 12) { int day = 0;//先声明一个变量存储天数 switch (monty)//多条件定值判断:类似于else if(变量==值)的switch...case的结构体 { //case 中的值必须是常量,不能是变量、表达式 case 1: case 3: case 5: case 7: case 8: case 10: case 12: day = 31; break;//专用于跳出switch语句 case 2: if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)) { day = 29; } else { day = 28; } break; default://相当于if语句的else,各case和default子句的先后顺序可以变动,而不会影响程序执行结果。default子句可以省略不用 day = 30; break; } Console.WriteLine("你输入的:{0}年{1}月共有{2}天。", year, monty, day); } else { Console.WriteLine("你的输入月份不符合要求,程序退出。"); } } catch { Console.WriteLine("你的输入月份有误,程序退出。"); } } catch { Console.WriteLine("你的输入年份有误,程序退出。"); } Console.ReadLine();