C#的语法----程序结构(1)

接下来的内容是整个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异常捕获

问题引出:语法上没有错误,在程序运行过程当中,由于某些原因程序出现了错误,不能在正常的运行。

下面我们看一段代码:

1 Console.WriteLine("请输入一个数字");
2 int number = Convert.ToInt32(Console.ReadLine());
3
4 Console.WriteLine(number*2);
5 Console.ReadKey();

我们正常输入int类型数字时,是没有问题的,但是我们呢要是输入类似“123ab”这样的数字,系统就会抛异常,程序停止运行。这时,

若想你的程序变得坚强,就会用到try-catch进行异常捕获。

就是哪里可能会出问题就将他try起来。

语法:

try

{

可能会出现异常的代码;

}

catch

{

出现异常后要执行的代码;

}

执行过程:如果try中的代码没有出现异常,那么catch中的代码就不会执行。

更改后的代码如下:

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

这里要注意变量的作用域,变量的作用域就是你能使用到这个变量的范围,一般是从声明他的那个括号开始到那个括号对应的括号结束。

注意:try-catch之间不允许有代码,要紧密相连。

下面看这样一个练习:

李四的年终工作评定,若为A,工资涨500,为B,工资涨200,为C工资不变,若为D工资降200,若为E,工资降500.原工资为5000

要求输入李四评级,然后显示李四来年的工资。

 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 }

但是以上代码会有问题,就是当你输入的为ABCDE以外的字母时,会发生一下问题:

也就是在执行完else代码后 最后的Console.WriteLine("李四来年的工资是{0}",salary);不应该输出为了解决这个问题,我们可以用以下方法解决。也就是用一个标志位。

 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 }

原文地址:https://www.cnblogs.com/LiyuLi/p/12073956.html

时间: 2024-10-09 20:26:46

C#的语法----程序结构(1)的相关文章

C#的语法----程序结构(6)

最后这一个循环是我们未来最最常用的for循环,所以篇幅较长,敬请谅解. 我不知道,大家在用while循环的时候,再写控制循环次数的时候,是不是总将i++忘记写,所以while还是有时候不太好用的, 那么,在我们已知循环次数的情况下,我们可以使用for循环来避免. for循环 语法: for(表达式1:表达式2:表达式3) { 循环体: } 表达式1:声明循环变量,记录循环次数. 表达式2:循环条件. 表达式3:改变循环条件的代码,使之终会不再成立. 我们写一下下面这样一个练习:找出100~999

C#的语法----程序结构(2)

接下来我们继续学习程序流程控制的语法! switch-case 用来处理多条件的定值的判断. 语法: switch(变量或者表达式的值) { case value1:要执行的代码1: break; case value2:要执行的代码2: break; case value3:要执行的代码3: break; ........ default:要执行的代码4; break; } 执行过程:程序执行到switch处,首先将括号或者表达式的值计算出来,然后拿着这个值一次和case处值进行匹配,一旦 匹

C#的语法----程序结构(3)

练习2 对于学员成绩的评测  成绩>=90:A  成绩>=80&&成绩<90:B  成绩>=70&&成绩<80:C  成绩>=60&&成绩<70:D  成绩<60:E 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Task

[C++基本语法:从菜鸟变成大佬系列](二):C++的程序结构

C++程序结构 让我们看一下打印Hello World这个词的简单代码. 1 #include <iostream>//头文件名,iostream表示有输入输出流 2 using namespace std; 3 // main() 是主程序开始的地方 4 int main() { 5 cout<<"Hello World"; // 输出Hello World 6 return 0; 7 } 让我们看一下上述程序的各个部分 C ++语言定义了几个标题,其中包含对

【Python】05、python程序结构控制语句

一.程序结构 程序结构:语句和表达式按照什么样的顺序执行 所有语言无非就三种程序结构:        顺序:默认结构 语句从上到下依次一行一行的执行,        分支:选择一个分支执行,永远最多只执行一个分支        循环: 二.分支结构语句 1.Python的比较操作 所有的Python对象都支持比较操作,可用于测试相等性.相对大小等 如果是复合对象,Python会检查其所有部分,包括自动遍历各级嵌套对象,直到可以得出最终结果 测试操作符: " =="操作符测试值的相等性

C语言中的程序结构

C语言中的程序结构有三种,分别是顺序结构.选择结构和循环结构. 一.按照语句的先后顺序执行的程序结构,称为顺序结构. 下面以一个求三角形面积的例子进行说明,其代码如下: 例1.1 1 #include<stdio.h> 2 int main() 3 { 4 int width,height,s; 5 printf("请输入三角形的底宽:\n"); 6 scanf("%d",&width); 7 printf("请输入三角形的高:\n&q

GO语言的进阶之路-go的程序结构以及包简介

GO语言的进阶之路-go的程序结构以及包简介 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.编辑,编译和运行 A,编辑 Go程序使用UTF-8编码的纯Unicode文本编写.大部分现代编译器都能够自动处理编码,并且某些最流行的编辑器还支持Go语言的语法高亮和自动缩进.如果你用的编辑器不支持Go语言,可以在Go语言官网的搜索框中输入编辑器的名字,看看是否有适合的插件可用.为了编辑方便,所有的Go语言关键字和操作符都使用ASCII编码字符,但是Go语言中标识符可以是任一Uni

C语言学习系列(三)C程序结构

一.C程序结构 C 程序主要包括以下部分: 预处理器指令 函数 变量 语句 & 表达式 注释 new C program demo: 1 #include <stdio.h> /*预处理器指令*/ 2 /* 第一个中文程序实例 */ 3 int main() /*main函数*/ 4 { 5 int i; /*变量*/ 6 i=1; /*语句&表达式*/ 7 printf("我的第%d个C程序\n",i); /*语句&表达式*/ 8 return 0

Verilog HDL的程序结构及其描述

这篇博文是写给要入门Verilog HDL及其初学者的,也算是我对Verilog  HDL学习的一个总结,主要是Verilog HDL的程序结构及其描述,如果有错,欢迎评论指出. 一.Verilog HDL的程序结构 首先我们不开始讲Verilog HDL的语法,我们从Verilog HDL的程序结构出发.相信大家都看过芯片吧,它有个名字,有个外壳,外壳向外伸出有引脚(BGA封装的那种请不要乱搅和...),然后芯片它可以实现一定的功能. Ok,知道这些之后,我们就来看看Verilog HDL的描