C#的语法----程序结构(1)
2021-01-22 15:14
标签:不能 允许 字母 输入 image false ram ima 顺序 接下来的内容是整个C#学习的脉络,它将各个知识点串联了起来,是整个C#的重点,所以篇幅较长。 首先,我们类比一下PLC和C#执行代码的方式,其实不难发现都是顺序扫描,以Main为程序入口,从上到下一行一行执行。这属于顺序结构。下面我们看看已下几种结构 (1)分支结构:if if-else (2)选择结构:if-else-if switch-case (3)循环结构:while do-while for foreach 首先先分享分支结构的用法 if语句 语法: if(判断条件) { 要执行的代码; } 判断条件:一般为关系表达式或者bool类型的值。 执行过程:程序运行到if处,首先判断判断条件,若为true则执行{}中的程序,如果返回false,则继续向下执行。 即先判断在执行。 if else语句 语法: if(判断条件) { 执行代码1; } else { 执行代码2; } 执行过程:程序执行到if处,首先判断判断条件是否诚意,返回true,则执行代码1,否则执行代码2。用于两种情况的判断。 注意:else永远和离他最近的那个if配对。 这里我们还要去提到一个if-else的一个简化版用法,若语法条件不是很复杂可以这样使用: (表达式)?(result1):(result2) if else-if语句 作用:用来处理多条件的区间的判断。 语法: if(判断条件1) { 要执行的语句1; } else if(判断条件2) { 要执行的语句2; } else if(判断条件3) { 要执行的语句3; } else { 要执行的语句4; } ..... 执行过程:程序首先判断判断条件1,条件成立,执行语句1,否则执行判断条件2,成立跳出,否则继续执行语句3.如果都不成立则执行最后else语句。(else语句可以省略) 所以总结一下:if处理一种情况,if-else处理两种情况,if else-if处理多种情况。 try-catch异常捕获 问题引出:语法上没有错误,在程序运行过程当中,由于某些原因程序出现了错误,不能在正常的运行。 下面我们看一段代码: 我们正常输入int类型数字时,是没有问题的,但是我们呢要是输入类似“123ab”这样的数字,系统就会抛异常,程序停止运行。这时, 若想你的程序变得坚强,就会用到try-catch进行异常捕获。 就是哪里可能会出问题就将他try起来。 语法: try { 可能会出现异常的代码; } catch { 出现异常后要执行的代码; } 执行过程:如果try中的代码没有出现异常,那么catch中的代码就不会执行。 更改后的代码如下: 这里要注意变量的作用域,变量的作用域就是你能使用到这个变量的范围,一般是从声明他的那个括号开始到那个括号对应的括号结束。 注意:try-catch之间不允许有代码,要紧密相连。 下面看这样一个练习: 李四的年终工作评定,若为A,工资涨500,为B,工资涨200,为C工资不变,若为D工资降200,若为E,工资降500.原工资为5000 要求输入李四评级,然后显示李四来年的工资。 但是以上代码会有问题,就是当你输入的为ABCDE以外的字母时,会发生一下问题:
也就是在执行完else代码后 最后的Console.WriteLine("李四来年的工资是{0}",salary);不应该输出为了解决这个问题,我们可以用以下方法解决。也就是用一个标志位。 C#的语法----程序结构(1) 标签:不能 允许 字母 输入 image false ram ima 顺序 原文地址:https://www.cnblogs.com/LiyuLi/p/12073956.html
1 Console.WriteLine("请输入一个数字");
2 int number = Convert.ToInt32(Console.ReadLine());
3
4 Console.WriteLine(number*2);
5 Console.ReadKey();
1 int number = 0;
2 Console.WriteLine("请输入一个数字");
3 try
4 {
5 int number = Convert.ToInt32(Console.ReadLine());
6 Console.WriteLine(number*2);
7 }
8 catch
9 {
10 Console.WriteLine("输入的内容不能转换成数字");
11 }
12 Console.ReadKey();
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Threading.Tasks;
6
7 namespace 草稿
8 {
9 class Program
10 {
11 static void Main(string[] args)
12 {
13 double salary = 5000;
14 Console.WriteLine("请输入对李四的年终评定");
15 string level = Console.ReadLine();
16 if (level=="A")
17 {
18 salary += 500;
19 }
20 else if (level=="B")
21 {
22 salary += 200;
23 }
24 else if (level == "C")
25 {
26 salary += 0;
27 }
28 else if (level == "D")
29 {
30 salary -= 200;
31 }
32 else if (level == "E")
33 {
34 salary -= 500;
35 }
36 else
37 {
38 Console.WriteLine("输入有误程序退出");
39 }
40 Console.WriteLine("李四来年的工资是{0}",salary);
41 Console.ReadKey();
42 }
43 }
44 }
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Threading.Tasks;
6
7 namespace 草稿
8 {
9 class Program
10 {
11 static void Main(string[] args)
12 {
13 bool b = true;
14 double salary = 5000;
15 Console.WriteLine("请输入对李四的年终评定");
16 string level = Console.ReadLine();
17 if (level=="A")
18 {
19 salary += 500;
20 }
21 else if (level=="B")
22 {
23 salary += 200;
24 }
25 else if (level == "C")
26 {
27 salary += 0;
28 }
29 else if (level == "D")
30 {
31 salary -= 200;
32 }
33 else if (level == "E")
34 {
35 salary -= 500;
36 }
37 else
38 {
39 Console.WriteLine("输入有误程序退出");
40 b = false;
41 }
42 if (b)
43 {
44 Console.WriteLine("李四来年的工资是{0}", salary);
45 }
46
47 Console.ReadKey();
48 }
49 }
50 }