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(第四天)的主要内容,如果未能解决你的问题,请参考以下文章