C#传智:分支Switch与循环While(第四天)

Posted dzweather

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#传智:分支Switch与循环While(第四天)相关的知识,希望对你有一定的参考价值。


    
一、异常捕获
    定义:语法无错,程序因某些原因出现的错误,而不能正常运行。
    用try-catch进行捕获。哪行代码可能出现异常,你就踹它一脚。
        try
        
            可能会出现异常的代码;
            ----
        
        catch
        
            出现异常后要执行的代码;
        
    注:无异常则catch代码不会执行;有异常时,其后代码不会再执行,直接跳到catch中执行捕获。
        try与if一样,不需要用分号。
    
    
二、变量的作用域
    定义:能使用到变量的区域。变量仅在其声明的区域内起作用。
    变量:定义、赋值、使用。三种缺一种则IDE将会提示。

		Console.WriteLine("请输入:");
		int n = 0;//必须赋值,否则if中报错:定义、赋值后在if中使用
		bool b = true;
		try
		
			n = Convert.ToInt32(Console.ReadLine());
		
		catch
		
			Console.WriteLine("输入有误。");
			b = false;
		
		if (b)
		
			Console.WriteLine(n);
		

    注意:把所有程序写完后,再在可能异常的地方,使用try-catch, 同样try-catch与if-else的括号之间不要插入使用代码
          try
          
              
          
          b=32;//错误,插入了代码
          catch
          
              
          
    
三、switch-case
    多条件定值的判断处理。
        switch(变量或表达式的值)
        
            case 值1:要执行的代码;
            break;
            case 值2:要执行的代码;
            break;
            .......
            default:要执行的代码
            break;
        
    过程:计算switch值,与各case后面的值进行匹配,符合则执行其代码,后执行break跳出switch
          若都不匹配,若有default则执行其代码,否则跳出switch.
         switch中值类型必须与case中的类型一致.

		switch (level)
		
			case "A":
				n += 500;
				break;

			case "B":
				n += 200;
				break;

			default:
				b = false;
				Console.WriteLine("等级有误");
				break;
		
        if (b) Console.WriteLine(n);//可以简写

    区别:if-else与switch-case都可以多值判断。if是区间,switch是定值(可通过转换)
        类型不一致时,用if,不能用switch..
        判断为范围进用if,switch不适用。
        条件为多个时用if。能用switch尽量用,因它代码整洁好理解。

		switch (score / 10)
		
			case 10:
				Console.WriteLine("A");
				break;
			case 9:
				Console.WriteLine("A");
				break;
			case 8:
				Console.WriteLine("B");
				break;
			default:
				Console.WriteLine("E");
				break;
		

    上面与下同

		switch (score / 10)
		
			case 10:  //只有10与9的执行代码一样时,才可省略,这样它会到9去执行
			case 9:
				Console.WriteLine("A");
				break;
			case 8:
				Console.WriteLine("B");
				break;
			default:
				Console.WriteLine("E");
				break;
        	


五、循环结构
    while循环
        while(循环条件)
        
            循环体;
        
    循环条件为真,执行循环体;再次去判断循环条件,直到为假跳出。
    为防死循环,一般有一代码改变条件跳出while.
        while (true)
        
            
        
    例如:

		int n = 0;
		while (n++ < 10)
		
			Console.WriteLine("打印多次...\\t0", n);
			


    例2:    

		int n = 0, temp = 0;
		while (n <= 100)
		
			if (n % 2 == 0) temp += n;
			n++;
			

    break 用于中断循环,跳出当前的循环。
    一般不单独使用,而是配合if在某条件下使用。
    
    do-while循环
    遇到首先执行一遍循环体,再用结果去判断是否继续循环的。可以节省一段代码.
    while是先判断后执行,do-while是先执行后判断(而且最后必须有分号)。
    例如:

		Console.WriteLine("是否满意?");//多一遍
		string answer = Console.ReadLine();
		while (answer != "yes")//最先判断
		
			Console.WriteLine("是否满意?");
			answer = Console.ReadLine();
		

   //=====================================        

		string answer = "";
		do
		
			Console.WriteLine("是否满意?");//只一遍
			answer = Console.ReadLine();
		 while (answer != "yes");//最后判断,分号

    例1: 

		string name = "";
		do
		
			Console.WriteLine("请输入学生姓名:");
			name = Console.ReadLine();
		 while (name != "q");

以上是关于C#传智:分支Switch与循环While(第四天)的主要内容,如果未能解决你的问题,请参考以下文章

python学习第四天

Python学习第四天学习写的小案例(主要是针对 分支/循环的学习)

第四天 2020/7/9

C#传智: 调试与For循环(第5天)

02_5if switch分支与循环语句

3.分支结构与循环结构