C#基础总结(五)——条件判断及循环语句
一、异常捕获
异常是指在程序运行时发生的错误 。即可以编译通过,代码没有语法错误,但是运行的时候可能会发生的错误。举个例子,当你向控制台输入一个数字,然后通过Convert.ToInt32将获取到的字符串转换成int类型的数时,如果你传入的不是一个数字,而是一个字母,这个时候就会出现“输入字符串格式不正确的”错误,如下图所示:
在图中可以看到发生错误后会弹出个错误提示框,但是这样特别影响软件的执行效率以及对用户非常的不友好,因此我们就得学会如何来处理这些异常。
我们可以用try...catch...语句来处理简单的异常,语法格式如下:
try
{
代码(可能会出现错误的代码)
}
catch
{
代码 (出现错误后,你想怎么处理它们)
}
将上面出现异常的代码用try..catch..修改后,代码如下:
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入一个数字:");
try
{
int num = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(num);
}
catch
{
Console.WriteLine("对不起,只能输入一个数字");
}
Console.ReadKey();
}
}
效果如下:
二、switch-case语句
switch-case语句其实和if-else if的差不多的意思,用来处理多种情况的语句。语法格式如下:
switch(变量或表达式的值)
{
case 值1:要执行的代码;
break;
case 值2:要执行的代码;
break;
...
default:要执行的代码;
break;
}
这里的 break 语句作用就是跳出当前的switch-case语句,因为已经跳出了,所以不会再往下继续执行switch-case里面的代码了。break也可以跳出当前的循环语句 ,下面开始讲循环结构。
三、while语句
while语句是一个循环语句,语法结构如下:
while(条件语句)
{
代码; /*条件语句会返回bool值,如果条件语句一直为true,那么就不停地执行里面
的代码,如果为false,则不再执行里面的代码。*/
}
四、for循环语句
for语句也是循环语句,结构如下:
for(表达式1;表达式2;表达式3)
{
循环体;
}
/*
表达式1一般为声明循环变量,记录循环的次数(int i=0;)
表达式2一般为循环条件(i<10)
表达式3一般为改变循环条件的代码,使循环条件终有一天不再成立(i++)。
执行过程:程序首先执行表达式1,声明了一个循环变量用来记录循环的次数,
然后执行表达式2,判断循环条件是否成立,如果表达式2返回的结果为true,
则执行循环体。当执行完循环体后,执行表达式3,然后执行表达式2继续判断循环条件是否成立,
如果成立则继续执行循环体,如果不成立,则跳出for循环。
*/
五、continue与break
break:跳出当前循环,并且不再执行循环。
continue:跳过此次循环,然后继续下次循环。
六、三元表达式
三元表达式和if-else语句用意相似,都是处理两种情况的判断语句。如下所示:
bool 变量 = 表达式1?值1:值2;
执行过程: 先进行表达式1,如果表达式1为true,则将值1返回给布尔型变量;如果表达式1为false,则将值2返回给布尔型变量。是不是和if-else语句很像呢。
七、用Parse进行类型转换
前面已经学习过如何在数据类型之间进行转换,例如将字符串转换成int类型可以用:Convert.ToInt32(str);现在再增加一种方法:
string str = "123";
int i = int.Parse(str);
那这两种类型转换的方式有什么区别吗? 没有区别。因为Convert.ToInt32() 其实是在内部调用了int.Parse()的方法。
八、程序调试
程序调试用来干嘛?一般来说,如果我们想深入了解一段代码的执行过程,就可以用调试来进行。还有,如果你的程序得出的数据并不是你想要的结果,你就想看看到底是哪一步代码出了问题,就可以用调试来解决。
调试有三种调试方式:
1、 单步调试,也叫逐句调试,也就是一句一句的调试,快捷键是 F11
2、逐过程调试,就是一个方法一个方法的调试,快捷键是 F10
3、断点调试, 在你认为可能会开始发生错误的代码标记一个断点,然后按 F5 进行断点调试,程序会在你设置断点的那一行暂停下来,然后你就可以进行单步调试来进行调试。