c#中异常捕获如何完成:
try-catch 的用法:
try //检测
{
有可能出错的代码写在这里。
}
catch
{
出错后的处理。
}
上面的程序如何执行:
如果try中的代码没有出错,则程序正常运行try中的内容后,不会执行catch中的内容。
如果try中的代码一旦出错,程序立即跳入catch中去执行代码,那么try中的出错代码后面的代码不再执行
try
{
Console.WriteLine("请输入:");
int ages = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(age);
}
catch
{
Console.WriteLine("输入有误!");
}
Console.ReadKey();
【练笔: 编写计算几天是几月几周零几天,设一个月30天】
Console.Write("你要输入的天数:");
int days = Convert.ToInt32(Console.ReadLine());
int month = days / 30;
int mod = days%30; //days中的天数除去月份所占用的天数,还剩多少天。
int week =mod/7 ;
int day = mod % 7;
Console.WriteLine("{0}共有{1}月{2}周{3}天", day, month, week, day);
Console.ReadLine();
#region 编程实现107653秒是几天几小时几分钟几秒?
int seconds = 107653;
int s=24*60*60;
int days = seconds / s;
int hours = seconds % s/(60*60);
int mins = (seconds % s) % (60 * 60)/60;
int secs=(seconds%s)%(60*60)%60;
Console.WriteLine("107453秒是{0}天{1}小时{2}分钟{3}秒", days, hours, mins,secs);
Console.ReadKey();
#endregion
算术运算符:
++ 自加一(一元表达式:i++,i--)
-- 自减一
在表达式中:
i++ 为后加 【int age=18; int sum=age++ -10; 输出的sum值为8因为age先用后加】
++i 为前加 【int age=18; int sum=++age -10; 输出的sum值为9因为age先加后用】
在c#中,一般情况下,一元运算符优先级大于二元运算符
i+=3;效果等于i=i+3;
i-=3;效果等于i=i-3;
i/=3;效果等于i=i/3;
i*=3;效果等于i=i*3;
i%=3;效果等于i=i%3;
关系表达式的运算结果为bool类型,bool类型只有两个值,一个是TRUE,一个是FALSE
在c#中,有6个关系运算符,用于比较两个事物之间的关系
【>,<,==,!=,>=,<=】
bool类型(布尔类型)
bool isRight;值为TRUE 或者FALSE
【 int zsAge = 20;
int lsAge = 18;
bool isRight = zsAge < lsAge;
Console.WriteLine(isRight);
Console.ReadKey(
】
逻辑运算符:&& ,|| ,! 【运算级别:(与&&)高(或||)低】
又逻辑运算符组成的式子叫做逻辑表达式;
bool isRight=表达式1&&表达式2
逻辑与连接的两个表达式,要求能过求解成bool类型,一般情况都是关系表达式。这个逻辑与运算的结果也是bool类型。
"与"、"或"短路:
int a=10;
int b=5;
bool result=++a>50 && ++b>1;
console.writeLine("{a},{b}",a,b)//输出a为11 ,b为5 因为++a>50 不成立就不执行后面的++b了。
int a=10;
int b=5;
bool result=++a>5 || ++b>1;
console.writeLine("{a},{b}",a,b)//输出a为11 ,b为5 因为当第一个成立了就不再执行后面的了。
if结构的基本语法:
if(条件){语句1;}
执行过程:首先判断条件的结果,如果条件为true,则执行语句1.如果条件为false,则跳过语句1.执行后面的语句。
注意:1)if后面括号中的条件,要能计算成一个bool类型的值
2)默认情况下,if语句只能带1句话,即和if语句有关系的语句只有一句1。
if-else结构的基本语法:
if(条件){语句1;}else{语句2;}
执行过程:如果条件为true,则执行if带的语句块1,并且跳过else带过的语句块2,如果条件为false,这跳过if带的语句块1,这些else带的语句块2。
上面两个语句块,根据条件结束为true或false执行其中一个。
if-else if结构的基本语法:
if(条件1){ 语句1;}
else if(条件2){语句2;}
else if(条件3){语句3;}
...
else{语句n;}
在if-else if语句中,只有当上一个条件不成立时,才会进入下一个if语句并进行if语句后面的条件判断,一旦有一个if后面的条件为true,则执行此if所带的语句(块),语句(块)执行完毕后,程序跳出if-else if结构,如果所有的if条件都不成立,则如果最后又else 则执行else所带的语句,否则什么都不执行。
switch-case语法:当给出的是定值
switch(表达式【可以求出一个值】)
{
case 值 1:语句块1;
break;
case 值 2:语句块2;
break;
default:语句块3;
break;
}
执行过程:首先计算表达式,然后根据计算结果与匹配case后面的值,如果有匹配项,则执行匹配项后面的语句,直到break语句跳出switch-case。如果所有的case值都不匹配,那么有default则执行default后面的语句,直到break结束。如果没有default,则跳出switch-case,什么都不执行。
例子:
Console.WriteLine("输入A-E:");
string input = Console.ReadLine();
decimal salary = 5000m;
bool fag = false;
switch (input)
{
case "A": salary+=500;
break;
case "B": salary += 450;
break;
case "C":
break;
case "D": salary -= 200;
break;
case "E": salary -= 500;
break;
default :
Console.WriteLine("输入有误!");
fag = true;
break;
}
if (fag == false)
{
Console.WriteLine("你的工资是:{0}", salary);
}
Console.ReadKey();
switch :一般只能用于等值比较
if-else if :可以处理范围
复习:
数据类型有哪些:1、int 2、double 3、char 4、string 5、decimal 6、bool
1、输入年 和月,看该月有几天:
Console.WriteLine("请输入年份:");
int year=Convert.ToInt32(Console.ReadLine());
Console.WriteLine("请输入月份:");
int month=Convert.ToInt32(Console.ReadLine());
bool isnet= (year%400== 0 )||((year%4==0)&&(year%100!=0));
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
Console.WriteLine("31天");
break;
case 2:
if(isnet )
{
Console.WriteLine("29天");
}
else
{
Console.WriteLine("28天");
}
break;
default:
Console.WriteLine("30天");
break;
}
Console.ReadKey();
2、对学员的结业考试成绩评测(用Switch)
成绩>=90:A
90>成绩>=80:B
80>成绩>=70:C
70>成绩>=60:D
成绩<60 :E
Console.WriteLine("请输入成绩:");
int month = Convert.ToInt32(Console.ReadLine());
switch (month/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;
}
Console.ReadKey();
|