c#流程控制语句_c#流程控制语句 练习题 - CSDN
  • C#中的流程控制语句

    2018-02-01 13:38:42
    前言   结构化程序设计是程序设计的一种方式,它将要解决的问题分成若干个模块...C#程序组成单位是类,而类就是由数据和处理这些数据的函数组成。结构化程序设计利用以下三种语句完成所有函数的设计:  顺

    前言    


        结构化程序设计是程序设计的一种方式,它将要解决的问题分成若干个模块,而每个模块由一系列的函数构成,每个函数完成一定的功能。结构化程序设计的任务就是将大问题模块化,然后设计相关的函数。这种逐步细化的方法被称为自顶向下的模块化程序设计方法。C#的程序组成单位是类,而类就是由数据和处理这些数据的函数组成。结构化程序设计利用以下三种语句完成所有函数的设计:

        顺序:程序的执行次序和语句的书写次序相同

        分支:按照某种条件,判定应执行那条程序

        循环:按照某种条件要求,往复执行某些程序段

        

    顺序执行语句:


        常见的顺序语句包括:赋值语句,例如:i=5;

                            输入输出语句,例如:System.Console.Writ(“Hi”);

                            其他表达式调用语句,如:i++;i--;


    if 分支语句


    if语句用来判定给定条件是否成立,如果成立,则执行if后面的语句,否则执行else后的语句,其主要有三种形式:

    (1)if(布尔表达式)语句;

              

    <span style="font-size:18px;">if (a>b)  {  Console.WriteLine(a,Tostring()); }</span>

    (2)if(布尔表达式)语句1;

           else  语句2;

    <span style="font-size:18px;">if (a>b ) {  Console.WriteLine(a,ToString()); }
    else {  Console.WriteLine(b,ToString()); }</span>


    (3)if (布尔表达式1)语句1;

           elseif (布尔表达式2) 语句2;

           elseif(布尔表达式3)语句3;

           …………….

           else语句n;

    <span style="font-size:18px;">if (a>5) {  Console.WriteLine("厉害"); }
    else if (a>4){  Console.WriteLine("还好"); }
    ……
    else (a>0) { Console.WriteLine("呵呵"); }</span>

    格式解释:如果满足表达式1,则执行语句1,如果不满足,则判断是否满足表达式2,如果满足则执行表达式2.


    switch分支语句


        switch语句用于多条件判断,它判定表达式是否为某个给定值,如果是,则执行相应的语句。语法如下:

        switch (表达式){

                         case  常量表达式1:语句1;break;

                         case  常量表达式2:语句2;break;

                         ……………

                         default:语句n;break;

                        }

    <span style="font-size:18px;">           int i = 2;
                     switch (i)
                {
                    case 0: System.Console.WriteLine("苹果"); break;
                    case 1: System.Console.WriteLine("香蕉"); break;
                    case 2: System.Console.WriteLine("橘子"); break;
                    default:
                       System.Console.WriteLine("nothing");break;
                }</span>


    While循环语句


    while用于判定当某个条件为真是,就往复循环执行一段代码,其格式如下:while (布尔表达式)语句;

    while 循环中如需执行多条语句,请使用复合语句。

    <span style="font-size:18px;">            double e = 0.0;
                long i = 1, s = 1;
                while (1.0/s > 0.0001){
                    e=e +1.0/s ;
                    s *=i ;
                    i++;
                }
                System.Console .WriteLine ("e={0}",e);</span>



    do while 循环语句


        while循环首先判定给定的条件是否满足,所以其循环语句有可能不会得到执行。而do while循环会至少执行一次循环体中的语句,其格式为:

        do 语句;while(表达式);

        do {

                  语句1;

                  语句2;

                  …….

                  语句n;

           }while(表达式);


    for循环语句


        C# 中的for语句比较灵活,它既可以用来判定在给定条件下是否应当进行循环体语句的执行,也可以按照给定的给定的次数进行循环语句体的执行。

        for语句的语法格式为: for(表达式1;表达式2;表达式3) 语句体; 图示和代码举例如下:


       


    <span style="font-size:18px;">            int i, j, k;
                for (int num = 100; num < 1000; num++) 
                {
                    i = num / 100;
                    j = num % 100/10;
                    k = num%10;
                    if (i * i * i + j * j * j + k * k * k == num)
                    {
                        Console.WriteLine("{0,5}", num);</span>
                    }
    题目:计算一个三位数,并且它的个位,十位,百位的三次方的和等于它本身,计算结果如下图:




    goto语句


         goto语句可以让程序跳转到指定的位置。C#中goto的语法主要由三种形式:

         (1)goto case case条件名

            用于switch语句中的case条件的共享

         (2)goto default

            用于switch语句中default条件的共享


         (3)goto标号名称

           标号是在C#源程序的方法中定义的一个标记,形式是一个标识符加上冒号。如,标记标识:

           goto将程序流程直接跳转到指定的标号处



    break语句与continue语句


    break:一般用于switch语句或循环语句中。当用于循环语句时,break语句结束当前循环,跳出循环体后面的语句。

    continue:用于循环语句中,当程序执行遇到continue语句时,结束当前循环,返回循环的条件判断语句处执行。



    展开全文
  • C#中的流程控制包含了条件语句、循环语句、跳转语句和异常处理四个方面。一、跳转语句break语句:终止并跳出循环体。continue语句:终止当前循环,重新开始一个新的循环。goto语句:跳转到指定位置。C#允许给代码行...

    C#程序的执行都是一行接一行、自上而下地进行,不遗漏任何代码。为了让程序能按照开发者所设计的流程进行执行,必然需要进行条件判断、循环和跳转等过程,这就需要实现流程控制。C#中的流程控制包含了条件语句、循环语句、跳转语句和异常处理四个方面。
    一、跳转语句
    break语句:终止并跳出循环体。

    continue语句:终止当前循环,重新开始一个新的循环。

    goto语句:跳转到指定位置。
    C#允许给代码行加上标签,这样就可以使用goto语句直接跳转到这些代码行上。goto语句的用法如下:
    goto<labelName>;
    标签用下述方式定义:
    <labelName>:
    goto语句有两个限制,不能跳转到像for循环这样的代码块中,也不能跳出类的范围,不能退出try…catch语句后面的finally块。
    这里讲解goto语句只为了解其语法,当遇到时能知道代码的意思,本人不建议使用。

    return语句:跳出循环及其包含的函数。

    throw语句:抛出一个异常。

    二、条件语句
    条件语句可以根据条件是否满足或者根据表达式的值控制代码的执行分支。C#有两种控制控制代码分支的结构,分别是if语句和switch语句。
    if语句
    注意:if语句的条件可以是布尔变量,也可以是表达式,但如果是表达式,则表达式得到的结果必须是布尔值。
    1、单选择if语句,即条件成立执行,语法如下:
    if(条件)
    {
        do;
    }

    2、ifelse语句,即条件成立执行A否则执行B,语法如下:
    if(条件)
    {
        do A;
    }
    else
    {
        do B;
    }
    延伸:三元运算符?:也相当于一个ifelse语句,语法如下:<表达式> ? <resultIfTrue>  : <resultIfFalse>  其中计算表达式可得到一个布尔值,
    运算符的结果根据这个值来确定是<resultIfTrue>,还是<resultIfFalse>。例:

                int a = 8;
                string b = (a < 10) ? "小于10" : "大于10";

     

    3、多选择if语句,即对多个条件进行判断,成立的执行,语法如下:
    if(条件1)
    {
        do A;
    }
    else if(条件2)
    {
        do B;
    }
    else if(条件3)
    {
        do C;
    }
    else
    {
        do D;
    }
    其中else if语句的个数不受限制,但是如果else if语句的个数较多,则应该考虑另一种分支结构:switch语句。
    注意:多选择if语句自上而下,只要有一个条件成立就不会去判断其它任何条件。

    switch语句
    switch…case语句适合于从一组互斥的分支中选择一个执行分支。其形式是switch参数的后面跟一组case子句。如果switch参数中表达式的值等于某个case子句旁边的某个值,就执行该case子句中的代码。此时不需要使用花括号把语句组合到块中,只需使用break语句标记每段case代码的结尾即可。也可以在switch语句中包含一条default子句,如果表达式不等于任何case子句的值,就执行default子句的代码。其语法如下:
    switch(表达式)
    {
        case 1:
        Console.WriteLine("1");
        break;
        case 2:
        Console.WriteLine("2");
        break;
        case 3:
        Console.WriteLine("3");
        break;
        default:
        Console.WriteLine("4");
        break;  
    }
    注意:switch语句每个case语句后面的值必须与表达式所得到的值的类型相同,而且必须是常量,不能是变量;switch语句中所有case语句后面的值必须是互斥的,也就是说case后面的值不能存在两个相同的值,因为所有case语句后面的值必须是互斥的,所以case语句的排放顺序无关紧要,甚至可以把default语句放在最前面!但是为养成良好的编程习惯和代码有清晰的逻辑,我不建议这样写;switch语句中default语句只能存在一个,不能存在多个;通常情况下,每个case后面都必须有一个break语句,break语句作用是中断switch语句的执行,但C#中也可以使用其它中断语句来中断switch语句的执,如return语句、goto语句。使用break语句和return语句来中断是有区别的,break语句仅仅中断switch语句的执行,如果switch语句后面还有其它代码是可以继续执行的,但是return语句中断则会中断switch语句所在的方法,也就是说switch语句后面的代码将不会执行,switch语句所在的方法将直接返回。使用goto语句可以从一个case跳到另一个case中执行,如下面这段代码:

                int a = 1;
                switch (a)
                {
                    case 1:
                        Console.WriteLine("1");
                        goto case 2;        
                    case 2:
                        Console.WriteLine("2");
                        break;                
                    case 3:
                        Console.WriteLine("3");
                        break;
                    default:
                        Console.WriteLine("4");
                        break;                
                    
                }

    程序说明:程序执行完 case 1后会直接执行case 2。但是我们不建议这样做,这会导致很难察觉的逻辑错误。

    通常情况下switch语句中一个case语句处理完成后,不能自由的进入下一个case语句,但是这个规则有一个例外。如果把多个case语句放在一起,其后面加一个代码块,实际上是一次检查多个条件,如果满足这些条件中的任何一个,就会执行代码,例如:

                int a = 2;
                switch (a)
                {
                    case 1:                         
                    case 2:                              
                    case 3:
                        Console.WriteLine("1或者2或者3");
                        break;
                    default:
                        Console.WriteLine("4");
                        break;                
                    
                }

     

    三、循环语句
    循环就是重复执行语句,循环结构可以实现一个程序模块的重复执行,它对我们简化程序、更好的组织算法有着重要的意义。
    1、do循环
    do循环的结构如下:
    do
    {
        语句或语句块;
    }while (表达式);
    do循环先执行语句或语句块,然后再判断表达式的值,如果表达式的值为true,则继续执行循环,直到表达式的值为false。注意:do循环刚执行的时候不管表达式的值为true或者是false它都要先执行一次语句或语句块,然后再来判断表达式的值。也就是说如果一开始表达式的值为false,它也会执行一次循环。do循环无论布尔表达式的值是true还是false,语句或语句块至少会执行一次。另外while语句后面必须使用分号(;)。

    2、while循环
    while循环的结构如下:
    while(表达式)
    {
        语句或语句块;
    }
    while循环则是先判断表达式的值,然后再执行语句或语句块,直到表达式的值为false。如果循环刚开始表达式的值就为false,那么语句或语句块就不会被执行。

    3、for循环
    for循环的结构如下:
    for(<初始化表达式>;<条件表达式>;<迭代表达式>)
    {
        语句或语句块;
    }
    初始化表达式:可以在该位置定义一个变量并为其赋一个起始值,也可以使用for循环前面定义的变量,但是使用for循环前面定义的变量必须在该位置为其重新赋一个起始值。注意:在该位置定义一个变量并为其赋一个起始值,这种用法定义的变量的作用域仅在for循环语句中,也就是说for循环语句后面的代码就不能使用该变量;但是用for循环前面定义的变量这种用法定义的变量for循环语句后面的代码就也能使用该变量。
    条件表达式:它是循环继续或者终止的条件。
    迭代表达式:执行完语句或语句块后就执行迭代表达式,然后再执行条件表达式判断循环是否继续。
    for循环示例:

                //将1到10打印到屏幕上
                for (int a =1 ; a <= 10; a++)
                {
                    Console.WriteLine(a);
                }            
                Console.ReadKey();

     

    4、foreach循环
    foreach语句用于枚举一个集合的元素,并对该集合中的每一个元素执行一次嵌入语句。foreach循环的结构如下:
    foreach(<类型> <迭代变量名> in <集合>)
    {
        语句或语句块;
    }
    注意:迭代变量的类型必须与集合的类型相同。集合内元素的个数决定循环内程序段重复执行的次数,每次进入循环,会依次将集合元素内容指定给变量,当所有元素都读完后,就会跳出foreach循环。foreach循环对集合内元素进行只读访问,不能改变任何元素的值。foreach循环在循环的过程中不能对集合进行添加元素或者删除元素的操作。示例:

                List<string> strList = new List<string>();
                for (int a =1 ; a <= 10; a++)
                {
                    strList.Add(a.ToString());
                }
    
                foreach (string str in strList)
                {
                    Console.WriteLine(str);
                    strList.Remove(str);
                }
                Console.ReadKey();

    以上程序中的foreach语句在输出集合strList中的第一元素并将其移除集合后进行下一次循环的时候会产生异常。

    5、无限循环
    在代码编写错误或者故意进行设计时,可以定义永不终止的循环,即所谓的无限循环。示例:
    while(true)
    {
        语句或语句块;
    }
    无限循环语句也是有用的,而且可以使用break语句或者手工使用Windows任务管理器退出无限循环。

    四、异常处理
    C#中的异常处理也算一种流程控制,try…catch…finally语句用于异常的捕获和处理,具体语法如下:
    try
    {
        语句或语句块;
    }
    catch(<execptionType> e)
    {
        语句或语句块;
    }
    finally
    {
        语句或语句块;
    }
    try:包含抛出异常的代码。
    catch:包含抛出异常时要执行的代码。catch块可以使用<execptionType>设置为只响应特定的异常类型,以便提供多个catch块。
    finally:包含始终会执行的代码,如果没有产生异常,则在try块之后执行,如果处理了异常,就在catch块后执行。
    try…catch…finally语句的执行顺序依次是:
    1、try块在发生异常的地方中断程序的执行。
    2、如果有catch块,就检查该块是否匹配已抛出的异常类型。如果没有catch块,就执行finally块(如果没有catch块,就一定要有finally块)。
    3、如果有catch块,但它与已发生的异常类型不匹配,就检查是否有其他catch块。
    4、如果有catch块匹配已发生的异常类型,就执行它包含的代码,再执行finally块(如果有)。
    5、如果catch块都不匹配已发生的异常类型,就执行finally块(如果有)。
    从try…catch…finally语句的执行顺序可以看出try…catch…finally语句有多种组合模式,这里就不详细讲解。

    转载于:https://www.cnblogs.com/share-IT/p/9193320.html

    展开全文
  • 条件语句分为if语句和switch语句两大类。 在if语句中: if...else语句 实例1(简单的if语句) Console.WriteLine("输入坏蛋个数"); int eggs = Convert.ToInt32(Console.ReadLine()); if (eggs < 5) {...

    条件语句分为if语句和switch语句两大类。

    在if语句中:

    if...else语句

    实例1(简单的if语句)

    Console.WriteLine("输入坏蛋个数");
                int eggs = Convert.ToInt32(Console.ReadLine());
    
                if (eggs < 5)
                {
                    Console.WriteLine("不退货了");
                }
                else
                {
                    Console.WriteLine("一定要退货");
                }
                Console.ReadKey(); if (eggs < 5)
                {
                    Console.WriteLine("不退货了");
                }
                else
                {
                    Console.WriteLine("一定要退货");
                }
                Console.ReadKey();

    这段代码很好理解,就是说:如果坏鸡蛋的个数少于5个,那就不退货了;否则,退货。

     

    实例2(嵌套的if...else语句)

    此段代码想表达的意思也较简单:学生分数大于90分的为A,小于90分里的,大于80分的为B,其余为C。画图更容易理解:

    最主要的是要按级思考嵌套,别乱了。在这个实例中,进一步体会到了学编程最主要的是学思想的道理。

    实例3(三元表达式)

    要想更简单,可以使用三元表达式,用一行代码代替以上整段。以实例1为例,代码可写成:

     

    eggs<5?"不退货了":"一定要退货";

     

    if...else if语句

    实例2中,可以用如下的写法:

     

    string str = "";
                Console.WriteLine("请输入成绩");
                int score = Convert.ToInt32(Console.ReadLine());
                if (score >= 90)
                {
                    str = "A";
                }
                else if (score >= 80)
                {
                    str = "B";
                }
                else
                {
                    str = "C";
                }
                Console.WriteLine(str);
                Console.ReadKey();if (score >= 90)
                {
                    str = "A";
                }
                else if (score >= 80)
                {
                    str = "B";
                }
                else
                {
                    str = "C";
                }
                Console.WriteLine(str);
                Console.ReadKey();

    这样写,比前者更清楚。
    小编私以为:简单的语句用三元表达式,复杂的用if...else if 语句,嵌套能不用就不用,这样简洁就不容易弄混。

     

     

    switch语句

     

     char grade='B';
    
          switch (grade)
             {
              case'A':
                  Console.WriteLine("优秀!");
                  break;
              case'B':
                  Console .WriteLine ("及格!");
                  break;
              case 'C':
                  Console .WriteLine ("不及格");
                  break;
              default :
                  Console.WriteLine("无效的成绩");
                  break;
             }
                Console .WriteLine ("您的成绩是{0}",grade);
                Console.ReadLine(); switch (grade)
             {
              case'A':
                  Console.WriteLine("优秀!");
                  break;
              case'B':
                  Console .WriteLine ("及格!");
                  break;
              case 'C':
                  Console .WriteLine ("不及格");
                  break;
              default :
                  Console.WriteLine("无效的成绩");
                  break;
             }
                Console .WriteLine ("您的成绩是{0}",grade);
                Console.ReadLine();

     

     

    先开始觉得挺乱,可总结梳理后感觉没啥知识。可见总结的重要性啊~

    展开全文
  • using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;...namespace _1006_流程控制语句_goto语句 { class Program { static void Main(s...
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace _1006_流程控制语句_goto语句
    {
        class Program
        {
            static void Main(string[] args)
            {
                //goto语句把控制交给由标记符命名的语句。
                //语法格式如下:
                //goto label;       ......
                //label;...在C#中,任何语句都可以被标记.语句标记后紧跟一个冒号,一个标记符。
                //常用格式:
                //goto identifier;//标签
                //goto case constant - expression;//switch-case标签
                //goto default; //switch语言中的默认标签?identifier:位于当前体中的标签、相同的词法范围或goto语言的封闭范围。
                //?case constant - expression;//将控制传递个特定的switch-case标签。
                //?default://将控制传递给switch语言中的默认标签
    
                //提示
                //?goto语句还可以用于跳出深嵌套循环
                //?goto语句只能在当前层内跳转。
                //?要避免使用goto语句。
    
                int x = 10;
                Console.WriteLine("x={0}", x);
                if (x == 10)
                {
                    x = 20;
                    goto A;
                }
                x = x + 1;
                for(int i = 1; i <= 5; i++)
                {
                    Console.WriteLine(i);
                }
                A: Console.WriteLine("x={0}", x);
                Console.ReadLine();
                //因为goto语句直接跳转到了A处,所以for语句没有执行。
            }
        }
    }
    

     

    展开全文
  • C#流程控制语句

    2017-04-14 12:59:51
    运用程序实例讲解C#流程控制语句。1. 选择语句1.1 简单的if语句基本形式如下:if(条件表达式){ 语句块 }eg1:判别年龄输入是否合法。Console.Write("请输入您的年龄:"); int age = Convert.ToInt32(Console....
  • C#流程控制语句

    2016-10-09 14:28:04
    If…else选择语句: If语句用于根据一个布尔表达式的值选择一条语句来执行If(布尔表达式) { 【语句块】 } 使用switch语句实现多分支选择: 它根据表达式的值来使从多个分支中选择一个用于执行分支Switch(...
  •   一个应用程序,通常包含了复杂的应用逻辑,要实现这些逻辑,就必须进行流程控制,下面把5种流程控制语句分享给大家。 if 语句 if 语句用来判断条件,符合条件则进入if 语句的代码块,不符合则执行if代码块后面...
  • 下面我将以三篇博文的形式给大家介绍“C#流程控制语句”。    主要介绍“条件语句、循环语句、跳转语句”“异常处理”不做具体介绍。 一般应用程序代码都不是按顺序执行的,必然要求进行条件判断、循环和...
  • using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;...namespace _1010_流程控制语句使用情况判断 { class Program { static void Main(st...
  • using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;...namespace _1004_流程控制语句_continue语句 { class Program { static void Ma...
  • C#控制语句(1)

    2018-05-23 21:46:40
    一、选择控制语句1,if语句显示输入数值的绝对值 int x; x = int.Parse(Console.ReadLine()); if (x&lt;0)x = -x; Console.WriteLine("绝对值为{0}",x);x=in.Parse(Console.ReadLine()) x=输入值if...
  • using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;...namespace _1007_流程控制语句_reture语句 { class Program { static int a(int...
  • using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;...namespace _1000_流程控制语句for循环 { class UsingFor { static void Main() ...
  • C#流程控制语句

    2015-12-06 13:07:31
    1、引言  之前在写关于C#中跳转语句时接触到一个对于我来说熟悉而陌生的“流程控制语句”,当时根本没有意识到跳转语句就是其中的一种,便查了查,令我豁然开朗,原来是这样的。。。 2、定义
  • C#选择控制语句

    2011-11-29 08:44:19
    本节课将介绍如何使用C#选择控制语句,第三课将达到如下几个目的:1.学会"if"语句的用法。2.学会"switch"语句的用法。3.学会在"switch"语句中如何使用"break"语句。4.理解&...
1 2 3 4 5 ... 20
收藏数 51,932
精华内容 20,772
关键字:

c#流程控制语句