主要内容.png主要内容
异常捕获
语法上没有错误,在程序运行的过程当中,由于某些原因程序出现了错误,不能正常的运行。
异常.png我们需要用户输入的是数字,但是用户输入的并不是一个数字导致无法进行类型的转换,出现异常。
我们在程序中经常会出现各种各样的异常,你如果想要你的程序变得坚强一些。
在你的代码中应该经常性的使用try-catch来进行异常捕获。
哪行代码有可能出现异常,你就踹它一脚。
语法:
try
{
可能会出现异常的代码;
....
...
...
}
//try和catch之间不能有其他的代码
catch
{
出现异常后要执行的代码;
}
执行过程:如果try中的代码没有出现异常,那么catch中的代码不会执行。
如果try中的代码出现了异常,那怕这行出现异常的代码后面还有一百行都不会执行了,
而是直接跳到catch中执行代码
修改一下上面的代码
运行结果.png变量的作用域
变量的作用域就是你能够使用到这个变量的范围。
变量的作用域一般从声明它的那个括号开始到那个括号所对应的结束的括号结束。(即包裹住它的最近的一对{})
在这个范围内,我们可以访问并使用变量。超出这个范围就访问不到了
switch-case
用来处理多条件的定值的判断。
语法:
switch(变量或者表达式的值)
{
case 值1:要执行的代码;
break;
case 值2:要执行的代码;
break;
case 值3:要执行的代码;
break;
..........
default:要执行的代码;
break;
}
执行过程:程序执行到switch处,首先将括号中变量或者表达式的值计算出来,
然后拿着这个值依次跟每个case后面所带的值进行匹配,一旦匹配成功,则执行
该case所带的代码,执行完成后,遇到break。跳出switch-case结构。
如果,跟每个case所带的值都不匹配。就看当前这个switch-case结构中是否存在
default,如果有default,则执行default中的语句,如果没有default,则该switch-case结构什么都不做。
static void Main(string[] args)
{
/*
* 李四的年终工作评定,如果定为A级 工资涨500
* B级 涨200
* C级 工资不变
* D级 降200
* E级 降500
* 假设李四的工资为5000 输入李四的评级 显示李四来年工资
*/
Console.WriteLine("请输入李四的工作评定等级(A、B、C、D、E)");
double salary = 5000;
string level = Console.ReadLine();
switch (level)
{
case "A":
salary += 500;
break;
case "B":
salary += 200;
break;
case "C":
break;
case "D":
salary -= 200;
break;
case "E":
salary -= 500;
break;
default:
break;
}
Console.WriteLine("明年工资{0}", salary);
Console.ReadKey();
}
结果.png
比较.png** if-else if 与 switch 的比较**
** 小练习**
static void Main(string[] args)
{
//请用户输年份,再输入月份,输出该月的天数.(结合之前如何判断闰年来做)
Console.WriteLine("请输入一个年份");
try
{
int year = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("请输入一个月份");
try
{
int month = Convert.ToInt32(Console.ReadLine());//1-12
if (month >= 1 && month <= 12)
{
int day = 0;//声明一个变量用来存储天数
switch (month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: day = 31;
break;
case 2:
//由于2月 有平年和闰年的不同 所以首先要判断一下当年是不是闰年
if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0))
{
day = 29;
}
else
{
day = 28;
}
break;
//4 6 9 11
default: day = 30;
break;
}
Console.WriteLine("{0}年{1}月有{2}天", year, month, day);
}//if判断的括号
else
{
Console.WriteLine("输入的月份不符合要求,程序退出");
}
}//try月份括号
catch//跟月份配对
{
Console.WriteLine("输入的月份有误,程序退出");
}
}//try年份的括号
catch//跟年份的try配对
{
Console.WriteLine("输入的年份有误,程序退出");
}
Console.ReadKey();
}
while循环结构
语法
while(循环条件)
{
循环体;
}
执行过程:程序运行到while处,首先判断while所带的小括号内的循环条件是否成立,如果成立的话,也就是返回一个true,则执行循环体,执行完一遍循环体后,再次回到循环条件进行判断,如果依然成立,则继续执行循环体,如果不成立,则跳出while循环。
在while循环当中,一般总会有那么一行代码,能够改变循环条件,使之终有一天不再成立,如果没有那么一行代码能够改变循环条件,也就是循环条件永远都成立,我们称之这种循环叫做死循环。
最简单的最常用的死循环:
while(true)
{
}
特点:先判断,再执行,有可能一遍循环都不执行。
static void Main(string[] args)
{
//向控制台打印100遍 下次考试我一定要细心
//循环体:Console.WriteLine("下次考试我一定要细心");
//循环条件:打印的次数小于100遍
//需要定义一个循环变量用来记录循环的次数 每循环一次,循环变量都应该自身加1
int i = 0;
while (i < 100)
{
Console.WriteLine("下次考试我一定要细心\t{0}", i);
i++;//循环一次,都要自身加1,否则就是死循环
}
Console.ReadKey();
}
结果.png
- 小练习
static void Main(string[] args)
{
//输入班级人数,然后依次输入学员成绩,计算班级学员的平均成绩和总成绩
//
//循环体:提示输入学员成绩,接收,并转换成整数类型,累加到总成绩当中
//循环条件:循环的次数小于等于班级人数
Console.WriteLine("请输入班级人数");
int count = Convert.ToInt32(Console.ReadLine());
int sum = 0;//用来存放总成绩
int i = 1;//声明一个循环变量用来记录循环的次数
while (i <= count)
{
Console.WriteLine("请输入第{0}个学员的考试成绩", i);
int score = Convert.ToInt32(Console.ReadLine());
//表示把每一个学员的成绩累加到总成绩当中
sum += score;
i++;
}
Console.WriteLine("{0}个人的班级总成绩是{1}平均成绩是{2}", count, sum, sum / count);
Console.ReadKey();
}
结果.png
break关键字的用法
1)、可以跳出switch-case结构。
2)、可以跳出当前循环。
break一般不单独的使用,而是跟着if判断一起使用,表示,当满足某些条件的时候,就不再循环了。
static void Main(string[] args)
{
int i = 0;
while (i < 10)
{
Console.WriteLine("Hello 酷狗");
break;
}
Console.ReadKey();
}
结果.png
do - while循环
语法:
do
{
循环体;
}while(循环条件);
执行过程:程序首先会执行do中的循环体,执行完成后,去判断do-while循环的循环条件,
如果成立,则继续执行do中的循环体,如果不成立,则跳出do-while循环。
特点:先循环,再判断,最少执行一遍循环体。
static void Main(string[] args)
{
//明天小兰就要登台演出了,老师说再把明天的演出的歌曲唱一遍,
//如果满意,小兰就可以回家了.否则就需要再练习一遍,直到老师满意为止.(y / n)
//循环体: 小兰唱了一遍 问老师 满意么?老师回答
//循环条件:老师不满意
//Console.WriteLine("老师我唱的你满意么?");
//string answer = Console.ReadLine();
//while (answer == "no")
//{
// Console.WriteLine("老师,我再唱一遍,你满意么?");
// answer = Console.ReadLine();
//}
//遇见这种首先执行一遍循环体,拿着执行后的结果再去判断是否执行循环的循环。
//我们推荐使用do - while循环。
string answer = "";
do
{
Console.WriteLine("老师,我唱的你满意么?yes/no");
answer = Console.ReadLine();
} while (answer == "no");
Console.WriteLine("OK,放学回家~~~");
Console.ReadKey();
}
结果.png
往期回顾
图文无关.png
网友评论