A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 崔晓聪 中级黑马   /  2012-11-18 16:48  /  2033 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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();


评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

1 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马