我的编程空间,编程开发者的网络收藏夹
学习永远不晚

C#流程控制详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

C#流程控制详解

流程控制语句分类

  • 分支语句: if语句和switch语句
  • 迭代语句
  • 跳转语句

1、if语句

if (判断条件表达式){ 表达式结果为true时执行}else{表达式结果为false时执行}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace if语句
{
    class Program
    {
        static void Main(string[] args)
        {
            //判断a变量与10的关系
            Console.WriteLine("请输入你要比较的第一个数字");
            int a=Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("请输入你要比较的第而个数字");
            //int.parse 用于将屏幕输入的语句转换为整型
            int b = int.Parse(Console.ReadLine());
            if (a < b)
            {
                Console.WriteLine("您输入的第一个数字{0}小于第二个数字{1}", a,b);
            }
            else if (a == b)
            {
                Console.WriteLine("您输入的第一个数字{0}等于第二个数字{1}", a,b);
            }
            else {
                Console.WriteLine("您输入的第一个数字{0}大于第二个数字{1}", a,b);
            }
            Console.ReadKey();
        }
    }
}

2、switch

输入1显示为星期一,依次类推

swithc(条件表达式){
case 常量表达式:条件语句;
case 常量表达式:条件语句;
case 常量表达式:条件语句;
default:条件表达式
}

控件无法从最终用例标签(XX)脱离开关——程序无法判定为结束,所以必须加一个break;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace switch控制语句
{
    class Program
    {
        static void Main(string[] args)
        {
            // 输入一显示星期一,一次类推
            Console.WriteLine("请输入1-7的数字");
            int week = int.Parse(Console.ReadLine());
            switch (week) {
                case 1: Console.WriteLine("星期一"); break;  //结束当前代码体
                case 2: Console.WriteLine("星期二"); break;
                case 3: Console.WriteLine("星期三"); break;
                case 4: Console.WriteLine("星期四"); break;
                case 5: Console.WriteLine("星期五"); break;
                case 6: Console.WriteLine("星期六"); break;
                case 7: Console.WriteLine("星期日"); break;
                default: Console.WriteLine("您输入的数据错误"); break; //超出规定值设置相应提示
            }
            Console.ReadKey();


            //判断2020年每个月的天数, 1,3,5,7,8,10,12为31天,4,6,9,11位30天,二月29天
            Console.WriteLine("请输月份数");
            int month = int.Parse(Console.ReadLine());
            switch (month)
            {
                
                case 2: Console.WriteLine("您输入的{0}月份有28天",month); break;                
                case 4:               
                case 6:
                case 9:
                case 11:
                    Console.WriteLine("您输入的{0}月份有30天",month); break;
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                case 12:
                    Console.WriteLine("您输入的{0}月份有31天", month); break;
                default: Console.WriteLine("您输入的{0}月份错误", month); break; 
            }
            Console.ReadKey();
        }
    }
}

3、三位运算符

条件判断表达式?成立是执行的语句:不成立时执行的语句
三元运算符适用条件:只使用与判断具有两个结果的情况

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 三位运算符
{
    class Program
    {
        static void Main(string[] args)
        {
            // 判断输入述职与10的关系(<10 提示小于10, >=10提示大于等于10)
            Console.WriteLine("请输入您要比较的数据");
            int number = int.Parse(Console.ReadLine());
            //Console.WriteLine(number < 10 ? Console.WriteLine("小于10") : Console.WriteLine("大于等于10") );
            Console.WriteLine(number < 10 ? "小于10" : "大于等于10");
            Console.ReadKey();
        }
    }
}

4、迭代语句之while语句

4.1 迭代语句概述

迭代语句时程序中重复的执行,直到满足指定以条件才停止的一段代码。当用户想重复执行某些语句时,可依据当前不同的任务,

选择不同的循环依据使用,分别是:

  • while语句
  • do……while语句
  • for语句
  • foreach语句

4.2 while语句

while(条件表达式){
代码语句
}
while语句当条件满足时才执行

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace while语句
{
    class Program
    {
        static void Main(string[] args)
        {
            //输出1-50的数字到屏幕上
            int a = 1;
            while (a<=50){

                Console.WriteLine(a);
                a++;
               
            }
            Console.ReadKey();
        }
    }
}

5、迭代语句之do……while

do{
循环体语句
}while();
do……while语句至少执行一次,即使条件不成立也会执行一次

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace do__while
{
    class Program
    {
        static void Main(string[] args)
        {
            //输出1-50的数字到屏幕上
            int num = 0;
            do {
                num++;
                Console.WriteLine(num);

            } while (num < 50);
            // 计算现金存入银行多长时间才可以答案到我们的预期收益(均按一年期定期存款,到期后自动转存)
            // 分析题目需要的变量  :本金, 目标收益,利率  时间(年)
            // 一年的收益: 本金*(1+利率)*1年 
            double Balace = 0;
            double Rate = 0;
            int Year = 0;
            double TargetBalace = 0;
            Console.WriteLine("请输入您的本金");
            Balace = double.Parse(Console.ReadLine());
            Console.WriteLine("请输入您的当前利率百分比");
            Rate = double.Parse(Console.ReadLine())/100;
            Console.WriteLine("请输入您的目标收益");
            do {
                TargetBalace = double.Parse(Console.ReadLine());
                if (TargetBalace<Balace) {
                    Console.WriteLine("恭喜您现在已经拥有了{0}元,请输入一个更大的目标",TargetBalace);
                }
            } while (TargetBalace<Balace);
            do
            {
                Balace *= (Rate + 1);
                Year++;
            } while (Balace < TargetBalace);
            Console.WriteLine("您将在{0}年内,获得{1}元的收益",Year,Balace);
            Console.ReadKey();           
        }
    }
}

6、迭代语句之for循环语句

for循环可以循环次数的限定,并维护自己的计时器;
有时候我们会省略初始条件,判断条件,循环条件,但两个分号不能省略

for(初始条件;判断条件;循环条件){
循环语句
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace for循环语句
{
    class Program
    {
        static void Main(string[] args)
        {
            //求输入数据的阶乘
            // 1!=1  2!=2x1;  3!=3x2x1
            Console.WriteLine("请输入你要计算的阶乘数");

            for (;;) {
            int num = int.Parse(Console.ReadLine());
            int result = 1;
            for (int i=num; i!=0; i--) {
                result *= i;

            };
            Console.WriteLine("{0}的阶乘结果是{1}", num, result);
            };
            //Console.ReadKey();

        }
    }
}

for循环嵌套(九九乘法表)
循环嵌套就是一个循环中嵌套着另一个循环
使用for循环时,一般在for循环语句进行声明循环计数次的变量

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace for循环语句
{
    class Program
    {
        static void Main(string[] args)
        {
            //九九乘法表
            Console.WriteLine("==================九九乘法口诀=========================");
            for (int i = 1; i < 10; i++) {
                for (int j=1; j<= i; j++) {
                    Console.Write("{0}X{1}={2}\t", j, i, j * i);
                }
                Console.WriteLine();
            }
            Console.ReadKey();


        }
    }
}

7、迭代语句之foreach

foreach提供了一个for语句的捷径,而且还存进了集合类更为一致

foreach(类型;变量;in 集合){
代码体
}

string类型(字符串)可以看成是char类型(字符)的一个集合
char.IsWhiteSpace© 判断字符是不是空格
foreach每执行一内含代码,循环变量就会一次读取集合中的一个元素,向当时循环便利
此处循环变量只是一个只读型的局部变量,这个值如果被修改编译会报错

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace @foreach
{
    class Program
    {
        static void Main(string[] args)
        {
            //将语句识别为单词,并逐行输出
            //语句用string类型,字母用char
            Console.WriteLine("请输入一句英文语句");
            string sentence = Console.ReadLine();
            foreach (char word in sentence)
            {
                if (char.IsWhiteSpace(word))
                {
                    Console.WriteLine();
                }
                else
                {
                    Console.Write(word);
                    //word='t';  //foreach语句的迭代变量不允许重新赋值
                }
            }
            Console.ReadLine();

        }
    }
}

8、跳转语句之break语句

跳转语句是程序运行到某一位置时,可以跳转到程序中另一行代码的语句

  • break:1)switch语句中用于从case语句中跳出,结束switch分支语句。2)用于跳出迭代语句结束当前训话
  • continute语句
  • goto语句
  • return语句

通过迭代语句,准备输出1~500这500个数,每行输出10个数。当输出的值同时是2、3、4、5、6】7的倍数是,跳出for迭代语句。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace break语句
{
    class Program
    {
        static void Main(string[] args)
        {
            //通过迭代语句,准备输出1~500这500个数,每行输出10个数。当输出的值同时是2、3、4、5、6、7的倍数是,跳出for迭代语句。
            Console.WriteLine("输出1~500这500个数,每行输出10个数");
            for (int i=1;i<501;i++) {
                if (i % 2 == 0 && i % 3 == 0 && i % 4 == 0 && i % 5 == 0 && i % 6 == 0 && i % 7 == 0) {
                    Console.WriteLine();
                    Console.WriteLine("2、3、4、5、6、7的最小公倍数倍数是"+i);

                    break;
                }
                if (i % 10 == 0)
                {
                    Console.WriteLine(i);
                }
                else Console.Write(i + "\t");
            }
            Console.ReadKey();
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace break语句
{
    class Program
    {
        static void Main(string[] args)
        {
            //通过迭代语句,准备输出1~500这500个数,每行输出10个数。当输出的值同时是2、3、4、5、6、7的倍数是,跳出for迭代语句。
            Console.WriteLine("输出1~500这500个数,每行输出10个数");
            for (int i=1;i<501;i++) {
                if (i % 2 == 0 && i % 3 == 0 && i % 4 == 0 && i % 5 == 0 && i % 6 == 0 && i % 7 == 0) break;
                //{
                //    Console.WriteLine();
                //    Console.WriteLine("2、3、4、5、6、7的最小公倍数倍数是"+i);

                //    break;
                //}
                if (i % 10 == 0)
                {
                    Console.WriteLine(i);
                }
                else Console.Write(i + "\t");
            }
            Console.ReadKey();
        }
    }
}

9、continue语句

用于停止当前的迭代语句,结束本次循环,进入下一次循环(本次循环中continue后面的语句不执行)。breack是直接结束循环
只能用于迭代语句中

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace continute语句
{
    class Program
    {
        static void Main(string[] args)
        {
            //实现50以内的奇数输出,利用continue
            Console.WriteLine("请输入一个数,会自动显示小于次数的所有奇数");
            int num = int.Parse(Console.ReadLine());
            for (int i = 1; i < num+1; i++)
            {
                if (i % 2 == 0) continue;  //满足条件时跳出此次循环,进入下一个循环;且本次循环continute后的语句不执行
                Console.WriteLine(i);
               
                
            }
            Console.ReadLine();
        }
    }
}

10、跳转语句之return

return语句使用时,一般有两种格式:1)return; 2)return 表达式;
return语句只能出现在方法当中,当调佣方法时,执行到return语句时;直接跳转到main()函数

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace continute语句
{
    class Program
    {
        static void Main(string[] args)
        {
            //实现50以内的奇数输出,利用continue
            Console.WriteLine("请输入一个数,会自动显示小于次数的所有奇数");
            int num = int.Parse(Console.ReadLine());
            for (int i = 1; i < num+1; i++)
            {
                if (i % 2 == 0) continue;  //满足条件时跳出此次循环,进入下一个循环;且本次循环continute后的语句不执行
                Console.WriteLine(i);
               
                
            }
            Console.ReadLine();
        }
    }
}

使用方法实现:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace @return
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入三个整数,按回车键确认每个数的输入");
            int a = int.Parse(Console.ReadLine());
            int b = int.Parse(Console.ReadLine());
            int c = int.Parse(Console.ReadLine());
            //double averageresult = (a + b + c) / 3;
            double averageresult = average(a,b,c);
            Console.WriteLine("您输入的三个数{0}、{1}、{2}的平均数是{3}",a,b,c, averageresult);
            Console.ReadKey();
        }

        static double average(int a, int b, int c) {
            return (a + b + c) / 3;
        }
    }
}

11、跳转语句之goto

格式:goto 标标识符;
标识符标识程序位置的方法
标识方法——标识符+“:”

作用:当程序执行到goto语句时,程序会直接跳转到标识符所表示的程序位置。继续执行
goto的使用会使代码的易读性下降,在编写程序的时候尽量少用goto语句

任务:利用goto语句实现选择题:

5!=?
1、5!=5
2、5!=10
3、5!=20
4、5!=60

如果选择真确,提示:恭喜你,答对了!
如果选择错误,提示:很遗憾,你答错了
如果选择的选项不是1、2、3、4,提示:你所选的选项不存在

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace goto语句
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 0;
            Console.WriteLine("请选择5的阶乘正确答案,输入选项编号回车键确认");
            Console.WriteLine("1. 5!=5\n2. 5!=10\n3. 5!=20\n4. 5!=60\n");

        error:
            {
                a++;  //第一次执行时 a=1;因此不执行,当goto跳转到此语句时,再次自加1,a=2此时执行下面语句
                if (a > 1) Console.WriteLine("很遗憾,您打错了,请重新输入答案");  // 加入a判断条件原因是,避免在第一次执行是输出此提示
            }
        input:  int result = int.Parse(Console.ReadLine());
            
            switch (result) {
                case 1:
                case 2:
                case 3: goto error;
                case 4: goto right;
                default:
                    Console.WriteLine("您的选项{0}不存在,请重新输入",result);
                    goto input;
            }
        right:
            {
                Console.WriteLine("恭喜你答对了!");
            }
            Console.ReadKey();

        }
    }
}

12、任务实施

接受a\b\c三个整数,然后输出三个数中居中的那个数,并输出其阶乘

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 任务实施
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入三个整数");
            int a = Convert.ToInt32(Console.ReadLine());
            int b = Convert.ToInt32(Console.ReadLine());
            int c = Convert.ToInt32(Console.ReadLine());
            //判断中间变量
            ///如果a是中间值,那么有两种情况,b是最大值或b是最小值
            int temp = 0;
            int jc = 1;
            if ((a>=b && a<=c) || (a>=c && a<=b)) {
                Console.WriteLine(a + "是中间值");
                temp = a;
                Console.WriteLine("错误");
            }
            if (b >= a && b <= c || b >= c && b <= a)
            {
                Console.WriteLine(b + "是中间值");
                temp = b;
            }
            if (c >= a && c <= b || c >= b && c <= a)
            {
                Console.WriteLine(c + "是中间值");
                temp = c;
            }
            for (int i = 1; i < b+1; i++)
            {
                jc *= i;
            }
            Console.WriteLine("中间数{0}阶乘结果是{1}",temp,jc);
            Console.ReadKey();
        }
    }
}

到此这篇关于C#流程控制详解的文章就介绍到这了,更多相关C#流程控制内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

C#流程控制详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

一文详解C++的程序流程控制

这篇文章主要介绍了一文详解C++的程序流程控制,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
2022-11-13

PHP控制流程详解

【PHP控制流程详解】在PHP编程中,控制流程是指如何让程序按照我们所期望的顺序执行代码,通过控制流程,我们可以实现条件判断、循环执行和跳转等功能。本文将详细讨论PHP中常用的控制流程结构,并提供具体的代码示例以帮助读者理解和掌握。1.
PHP控制流程详解
2024-03-11

Golang流程控制语句详解

go 语言中的流程控制语句有三种类型:条件语句、循环语句和跳跃语句。条件语句根据布尔表达式的真假值控制程序流向;循环语句用于重复执行代码块;跳跃语句用于显式控制程序流向,包括退出循环、跳过迭代或跳转到指定位置。Go 语言中的流程控制语句流
Golang流程控制语句详解
2024-04-03

Go流程控制代码详解

这篇文章主要详细介绍了Go流程控制,文章通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
2023-05-16

详解Node.js串行化流程控制

串行任务:需要一个接着一个坐的任务叫做串行任务。 可以使用回调的方式让几个异步任务按顺序执行,但如果任务过多,必须组织一下,否则过多的回调嵌套会把代码搞得很乱。 为了用串行化流程控制让几个异步任务按顺序执行,需要先把这些任务按预期的执行顺序
2022-06-04

python学习 流程控制语句详解

###################### 分支语句 python3.5 ################ #代码的缩进格式很重要 建议4个空格来控制 #根据逻辑值(True,Flase)判断程序的运行方向 # Ture:表示非空的量(S
2022-06-04

Golang中常用的流程控制语句详解

Golang中常用的流程控制语句详解Golang作为一门面向并发的静态编程语言,提供了丰富的流程控制语句来实现复杂的逻辑和条件判断。本文将详细介绍Golang中常用的流程控制语句,包括if语句、switch语句、for语句等,并且提供具体的
Golang中常用的流程控制语句详解
2023-12-23

MySQL流程控制

流程控制 顺序结构: 程序从上往下依次执行分支结构: 程序按条件进行选择执行,从两条或多条路径中选择一条执行。循环结构: 程序满足一定条件下,重复执行一组语句 针对于MySQL的流程控制语句主要有3类。注意:只能用于存储程序 条件判断语
2023-08-22

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录