C#OOP之三 控制结构
2016-04-24 15:40
357 查看
|
20世纪60年代,人们发现,软件开发小组遇到的许多困难都是由于控制转移造成的,因此提出了结构化编程的思想。
为了使程序更容易开发和维护,程序员开始认真考虑结构化编程,因为结构化编程更清晰,更易调试与修改并且不容易出错。
经Bohm和Jacopini研究表明,在结构化编程中,所有程序只有三种控制结构,即顺序结构、选择结构和循环结构。术语“控制结构”来自计算机科学领域。
|
顺序结构是C#内置的,除非另外指定,计算机总是按编写的顺序一条一条执行。
上图演示了典型的顺序结构,按顺序进行了两次运算。
|
If语句称为单选则语句,因为它选择一个一个操作
If ………else语句称为双选择语句,因为它在两个或多个不同的操作中选择,
Switch语句称为多选语句,因为它在多个不同操作中选择
u If …单选择语句
上述伪代码的If语句可以写成如下C# 语句
确定“成绩大于或等于60分“为真或为假。如果是真,则打印“pass”字样,并且执行下一条语句。
u If ………else双选择语句
上述伪代码的If ………else结构可以写成如下的C#代码
在成绩大于或等于60分时打印“Passed”,否则打印“Failed”
u 嵌套If ………else语句
程序可以嵌套If ………else语句,将一个If ………else语句放在另外一个If ………else语句中。
上述伪代码的对应C#代码为:
成绩在90以上打印A,在80到89之间打印B,在70到79之间打印C
n Switch………..case结构
执行Switch………..case时,评估switch中的语句中给出的条件并与每个case常量比较。如果有一个case常量等于switch语句中给定的变量值,则语句转到相匹配的标签下的语句,执行后用break退出switch语句;如果没有匹配的case语句,则调用default语句。
int var;//声明变量
var=500;
switch(var)
{
case100:
Console.WriteLine(“100”);break;
case 200:
Console.WriteLine(“200”);break;
case 300:
Console.WriteLine(“300”);break;
default:
Console.WriteLine(“值不匹配”);break;
}
在一些情况下,可以用Switch………..case结构代替复杂的If ………else结构。
|
|
|
|
|
编写一个模拟计算器的程序。计算器应该能够执行以下算数操作:
n 加法
n 减法
n 乘法
n 除法
解决方案:
任务1:选择开始à所有程序à附件à记事本。
任务2:在记事本中编写一下程序:
任务3:选择文件à保存以保存该程序文件,出现另存为对话框。
任务 4:在文本框中输入JISUANQI.cs。
任务 5:在另存为对话框中单击保存按钮。
任务 6:在C#编译器中编译该文件。
任务 7:验证执行后的输出。
|
1.所有程序可以用三种控制结构编写:_________ _________ _________。
2. __________ 选择结构用于在条件为真时执行一个操作,条件为假时执行另一个操作。
3. __________结构是C#内置的,默认情况下,语句按这个顺序执行。
4. 判断这条语句的对错,入错错误,指出错误在哪里。
|
· while 循环
· do…while 循环
· for 循环
|
以下代码是while循环结构的语法:
While(条件)
{
循环体语句;
}
以下代码是while循环结构的示例:
while (n< 200)
{
Console.WriteLine("我爱C#!");
n++;
} }
While后面括号里面的条件和if语句后面括号里的条件一样都是关系表达式。
对于while语句的执行顺序是:先判断循环条件,条件为真则进入循环体,完成一次操作语句后,再判断循环条件,符合后,再进入,直到条件表达式为false,退出循环;
您可以使用break语句退出while循环结构。以下代码是break语句的示例:
int var;
var = 100;
while(true)
{
Console.WriteLine("变量值:"+ var);
var = var +10;
if (var >= 200)
break;
|
do…while循环结构类似于while循环结构。两个结构都要重复执行语句直至指定的循环条件为false。但是,在do…while循环中,循环的主体至少执行一次,并且为以后的重复执行评估条件。
以下代码是do…while循环结构的语法:
do
{
循环体语句;
} while(条件);
请注意do…while循环结构的示例:
int n;
n = 100;
do
{
Console.WriteLine("我爱c#!");
n = n + 1;
}
while (n < 200);
在上述代码中,执行do…while循环结构中的语句后,检查条件。因此,无论条
件是true还是false,do…while循环中的语句至少执行一次。
do…while循环 while循环
do…while循环与while循环的区别
|
下面是for循环的语法和使用示例:
for(表达式1;表达式2;表达式3)
{
循环体语句;
}
for(int n=0;n<10000;n++)
{
Console.Write(“我爱c#!”);
}
对于for循环,表达式1通常用来初始化循环变量,一般是赋值表达式;表达式2
是循环条件,是关系表达式,如果为true则执行循环体语句;表达式3用来修改循
环变量控制循环次数,一般为递增或递减表达式;
注意:for循环使用分号来隔开三个表达式,这三个表达式的执行顺序是:表达
式1→表达式2→循环体语句→表达式3→表达式2→循环体语句→表达式3→表达
式2…..如此,知道循环条件为false时,退出循环;
如果用while来写上面循环,它就等效于:
int n=0;
while(n<10000)
{
Console.Write(“我爱c#!”)
; n++;
}
示例:
using System; class Test { static void Main(string[]args) { int sum=0; for (int i=0;i<100;i++) { sum=sum+i; } Console.WriteLien(“从1加到100的和是{0}”,sum); } }
上面的程序是从1加到100的和,执行进入for循环后,首先给 i 赋值0,然后比较i
是否小于100,如果小于就进入循环体,在循环体中将 i 的值累加到sum后,执行
i++,然后判断此时的i是否小于100;这样操作直到i=100,此时i 不满足小于100
的条件,退出for循环,打印结果;
for循环的三个表达式可以省略,但两个分号却不能省,如:
for(;i<10;)
或for(;;)
或for(i=0;;i++)
或for(;i<10;i++) 注意:切忌将括号内的分号写成中文格式的!!其他的标点也一样!!!!
这些都是合法的,凡是省略了表达式2的,都被认为是死循环:
for (int n=0;;n++)
{
Console.WriteLine(“我爱你!!”);
/ /这将是死循环,说到死人家也不会嫁给你,
/ / 直到 n 的值超出 int 的范围出现异常强行退出,否则一直循环;
}
另外,for循环也可以嵌套,如:
using System; namespace Test { static void Main(string[]args) { for(int i=0;i<0;i++) { for (int j=0;j<60;j++) { Console.WriteLine(“{0}分{1}秒”,i,j); } } } }
运行结果:
1分1秒
1分2秒
1分3秒
1分4秒
1分5秒
1分6秒
………
对于嵌套循环来说,一般最多使用两层嵌套,也就是上面这一种嵌套,对于两层的
嵌套外循环每循环一次,内部将循环全部,所以上面这个最终会显示3600条数据;
for 循环语句省略大括号的规则和if ,while一样,当循环体内只有一个语句时可以省
略大括号,但最好不要省略,因为这样会是程序的可读性变差;
|
|
u 什么是控制结构
u 控制结构的种类及意义
u If…….else结构
u Switch….case结构
u 为什么要用循环,循环 的好处;
u 如何使用循环;
|
if 如果
else 其他的
switch 开关; 翻转; 转移
case 情形, 情况
Result 结果
If 如果
Else 否则
Statement 内容,声明
Leap leapYear (闰年) Year 年
Number 数字
Switch switch---case 开关、转向
Case 情况、状况
Constant constantExpression 常量
Expression 表达式
Break 终止、停止、退出
Default 默认
Calculate 计算器、计算
Menu 菜单
Enter 输入
Addition 加法
Subtraction 减法
Multiplication 乘法
Division 除法
Invalid 无效的
Option 选择
While 当
True 真的
False 假的
For for循环
Initialization 初始化
Termination 终止
Increment 增量
Decrement 减量
Fibonacci 斐波那契
Continue 继续
Convert 转为
Positive 正数
Sum 和
Character 符号、字
|
2..猴子吃桃问题:一个猴子去山上吃桃,桃子 原来总数不变,猴子每天吃一半,走的时候还带走一个,到第5天还有11个,问你原来有几个?
3.打印正三角形(等边三角形) (使用循环)
*
***
*****
*******
*********
4. 用for循环作出九九乘法表;
相关文章推荐
- C#OOP之三 控制结构
- C#OOP之三 控制结构
- c# 中button加图片
- C#基础-replace()过滤非法字符
- C# 通过循环清空窗体中所有 TextBox 的值
- c# winform笔记
- c#中using的用法详解
- C# textBox限定输入数字
- C#第7周实验(2)
- C# ZXing.Net生成二维码、识别二维码、生成带Logo的二维码(二)
- C# ZXing.Net生成二维码、识别二维码、生成带Logo的二维码(一)
- c#创建静态类,在其中定义一个泛型方法,实现查找数组元素的功能
- C# 静态类(static class)
- c# abstract抽象类与继承类子类的构造函数_base
- C#利用POST实现杭电oj的AC自动机器人,AC率高达50%~~
- [C#] 逆袭——自制日刷千题的AC自动机攻克HDU OJ
- VS快捷键C#
- BCB6 调用C# DLL
- 使用C#调用windows API(从其它地方总结来的,以备查询)
- C#_会员管理系统:开发五(用户注册)