博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#OOP之三 控制结构
阅读量:5328 次
发布时间:2019-06-14

本文共 4896 字,大约阅读时间需要 16 分钟。

控制结构的意义

 

通常,程序中的语句按编写的顺序一条一条的执行,称为顺序执行。程序员可以用一些不同的C#语句指定下一个要执行的语句不是紧邻其后的语句,这成为控制转移。

20世纪60年代,人们发现,软件开发小组遇到的许多困难都是由于控制转移造成的,因此提出了结构化编程的思想。

为了使程序更容易开发和维护,程序员开始认真考虑结构化编程,因为结构化编程更清晰,更易调试与修改并且不容易出错。

经Bohm和Jacopini研究表明,在结构化编程中,所有程序只有三种控制结构,即顺序结构选择结构循环结构。术语“控制结构”来自计算机科学领域。

 

顺序结构

 

顺序结构是C#内置的,除非另外指定,计算机总是按编写的顺序一条一条执行。

上图演示了典型的顺序结构,按顺序进行了两次运算。

 

分支结构

 

 

 

 

在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结构。

 

例:1

 

上述代码输出

例:2

 

上述例子输出

例:3

 

上述例子输出

例:4

 

上述例子输出

项目1:使用条件结构的计算器

 

 问题描述:

编写一个模拟计算器的程序。计算器应该能够执行以下算数操作:

n        加法

n        减法

n        乘法

n        除法

解决方案:

任务1:选择开始à所有程序à附件à记事本。

任务2:在记事本中编写一下程序:

 

任务3:选择文件à保存以保存该程序文件,出现另存为对话框。

任务 4:在文本框中输入JISUANQI.cs。

任务 5:在另存为对话框中单击保存按钮。

任务 6:在C#编译器中编译该文件。

任务 7:验证执行后的输出。

 

 

 

实践问题1:

 

填空题

1.所有程序可以用三种控制结构编写:_________ _________ _________。

2.  __________ 选择结构用于在条件为真时执行一个操作,条件为假时执行另一个操作。

3.  __________结构是C#内置的,默认情况下,语句按这个顺序执行。

4. 判断这条语句的对错,入错错误,指出错误在哪里。

使用循环结构

 

        循环结构用于重复执行一行或多行代码。C#支持以下的循环结构:

       · while      循环

       · do…while 循环

       · for          循环

 

While循环

 

while循环结构根据条件来执行一定次数的语句块。while语句在执行循环中的语句时总是要检查条件。当执行到while循环中最后一条语句时,控制权交回给循环的开始部分。如果条件仍然为真,则再次执行循环中的语句。将一直执行循环中的语句,直到条件为假时为止。

以下代码是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循环

 
        }

        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循环,事实上,fro循环是最常用的一种循环,它最大的就是直观和简洁,但使用for循环的语句都可以被while循环代替,而使用while循环的地方有时却不能被for循环替换。For循环一般用于实现固定次数的循环,相对于while循环来讲,用它实现固定次数的循环比较直观易读,这也是使用for循环的原因;

 

 

 

下面是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一样,当循环体内只有一个语句时可以省

 

略大括号,但最好不要省略,因为这样会是程序的可读性变差;

实践问题2:

 

1.      寻找下列代码的错误并说明如何纠正

 

 

 

 

 

 

 

小结:

 

在本章中,我们主要学习了:

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                                                      符号、字

练习项目:

 

1.编写一个程序以确定用户输入的数是奇数还是偶数

2..猴子吃桃问题:一个猴子去山上吃桃,桃子 原来总数不变,猴子每天吃一半,走的时候还带走一个,到第5天还有11个,问你原来有几个?

3.打印正三角形(等边三角形)      (使用循环)

                  *

                  ***

               *****

                  *******

                  *********

4. 用for循环作出九九乘法表;

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/mjsn/p/6150982.html

你可能感兴趣的文章
怎样建立一个bower私库
查看>>
struts2基本介绍
查看>>
Duanxx的STM32学习:NVIC操作
查看>>
假设拦截WebView的错误和OS升级到4.4后链接不能点击的问题
查看>>
c++中sort()及qsort()的使用方法总结
查看>>
Javascript > Eclipse > 自动代码规范化
查看>>
站立会议6
查看>>
我的笔记
查看>>
学生成绩
查看>>
16. 3Sum Closest
查看>>
使用Objective-C的+(void)initialize初始化static变量
查看>>
会员分享几个平时看榜单常去的网站
查看>>
用 new 还是用 alloc/init
查看>>
php中url传递中文字符,特殊危险字符的解决方法
查看>>
linux服务器之LVS、Nginx和HAProxy负载均衡器对比
查看>>
with语句
查看>>
T人声鼎沸
查看>>
高并发一些处理办法
查看>>
单例模式的使用
查看>>
python中的函数
查看>>