5.循环控制(上)【0基础入门】

简介: 5.循环控制(上)【0基础入门】

前言

通过应用程序了解选择结构的具体使用方法,区分两种if...else语句和switch语句,本文从选择结构开始向循环控制开始分析,由于循环控制篇幅较长,分为上下两篇。


提示:以下是本篇文章正文内容,下面案例可供参考

一、异常捕获

我们在程序中经常会出现各种各样的异常,你如果想要你的程序变得坚强一些。

在你的代码中应该经常性的使用try-catch来进行异常捕获。

哪行代码有可能出现异常,你就踹它一脚。

语法:

try

{

可能会出现异常的代码;

}

//try和catch之间不能有其他的代码

catch

{

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

}

执行过程:

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

如果try中的代码出现了异常,那怕这行出现异常的代码后面还有一百行都不会执行了,而是直接跳到catch中执行代码。

二、变量的作用域

变量的作用域就是你能够使用到这个变量的范围。

变量的作用域一般从声明它的那个括号开始到那个括号所对应的结束的括号结束。在这个范围内,我们可以访问并使用变量,超出这个范围就访问不到了。见下图。


942d3287d959436d82d0d5d24d1e0c80.png

      //原程序
      Console.WriteLine("请输入一个数字:");
            int num = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine(num*2);
            Console.ReadKey();
      //用try-catch
      //语法上没有错误,在程序运行的过程中,
            //由于某些原因程序出现了错误,不能再正常的运行
            int num=0;//声明了一个变量,要有一个数值
            Console.WriteLine("请输入一个数字:");
            try
            {
                num = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine(num * 2);//使用
            }
            catch {
                Console.WriteLine("输入的内容不能转换为数字。");
            }
            Console.ReadKey();
      //语法上没有错误,在程序运行的过程中,
            //由于某些原因程序出现了错误,不能再正常的运行
            bool a = true;
            int num = 0;//声明了一个变量,要有一个数值
            Console.WriteLine("请输入一个数字:");
            try
            {
                num = Convert.ToInt32(Console.ReadLine());
            }
            catch
            {
                Console.WriteLine("输入的内容不能转换为数字。");
                a=false;
            }
            //如果要执行下面代码,需要满足某些条件
            //让代码满足某些条件执行需要使用bool类型
            if (a)
            {
                Console.WriteLine(num * 2);//使用
            }
            Console.ReadKey();

三、switch-case语句

定义:

用来处理多条件的定值的判断。

语法:

switch(变量或者表达式的值)

{

case 值1:要执行的代码;

break;

case 值2:要执行的代码;

break;

case 值3:要执行的代码;

break;

default:要执行的代码;

break;

}


执行过程:

程序执行到switch处,首先将括号中变量或者表达式的值计算出来,然后拿着这个值依次跟每个case后面所带的值进行匹配,一旦匹配成功,则执行该case所带的代码,执行完成后,遇到break。跳出switch-case结构。

如果,跟每个case所带的值都不匹配。就看当前这个switch-case结构中是否存在default,如果有default,则执行default中的语句,如果没有default,则该switch-case结构什么都不做。

 /*题目1:李四的年终工作评定:
             * 如果定为A级,则工资涨500元,
             * 如果定为B级,则工资涨200元,
             * 如果定为C级,工资不变,
             * 如果定为D级工资降200元,
             * 如果定为E级工资降500元.
             * 设李四的原工资为5000,请用户输入李四的评级,然后显示李四来年的工资.*/
           /*题目1:李四的年终工作评定:
             * 如果定为A级,则工资涨500元,
             * 如果定为B级,则工资涨200元,
             * 如果定为C级,工资不变,
             * 如果定为D级工资降200元,
             * 如果定为E级工资降500元.
             * 设李四的原工资为5000,请用户输入李四的评级,然后显示李四来年的工资.*/
            #region if else-if的做法
            //bool a = true;
            //double money = 5000;
            //Console.WriteLine("请输入李四的评级:");//A,B,C,D,E
            //string level = Console.ReadLine();
            //if (level=="A")
            //{
            //    money += 500;
            //}
            //else if (level == "B")
            //{
            //    money += 200;
            //}
            //else if (level == "C")
            //{
            //    money += 0;
            //}
            //else if (level == "D")
            //{
            //    money -= 200;
            //}
            //else if (level == "E")
            //{
            //    money -= 500;
            //}
            输入的不是ABCD其中一个
            //else{
            //    Console.WriteLine("您的输入有误,请输入A,B,C,D,E五个评级。");
            //    a = false;
            //}
            //if (a)
            //{
            //    Console.WriteLine("李四的工资为{0}", money);
            //}
            #endregion
            #region switch的做法
            bool a = true;
            double money = 5000;
            Console.WriteLine("请输入李四的评级:");//A,B,C,D,E
            string level = Console.ReadLine();
            switch(level){
                case "A": money += 500;
                    break;
                case "B": money += 200;
                    break;
                case "C": money += 0;
                    break;
                case "D": money -= 200;
                    break;
                case "E": money -= 500;
                    break;
                default: Console.WriteLine("您的输入有误,请输入A,B,C,D,E五个评级。");
                    a = false;
                    break;
            }
            if (a)
            {
                Console.WriteLine("李四的工资为{0}", money);
            }
            #endregion
            Console.ReadKey();
/*题目2:让用户输入姓名,然后显示出这个人上辈子是什么职业。*/
            Console.WriteLine("请输入您的姓名:");
            string name = Console.ReadLine();
            switch(name){
                case "小明": Console.WriteLine("上辈子是神!");
                    break;
                case "小红": Console.WriteLine("上辈子是仙女!");
                    break;
                case "小张": Console.WriteLine("上辈子是猪!");
                    break;
                case "小华": Console.WriteLine("上辈子是鬼!");
                    break;
                case "小丽": Console.WriteLine("上辈子是精灵!");
                    break;
                case "小紫": Console.WriteLine("上辈子是恶魔!");
                    break;
                default: Console.WriteLine("不认识,估计是一坨翔!");
                    break;
            }
            Console.ReadKey();

四、循环结构

语法:

while(循环条件)

{

循环体;

}

执行过程:

程序运行到while处,首先判断while所带的小括号内的循环条件是否成立,如果成立的话,也就是返回一个true,则执行循环体,执行完一遍循环体后,再次回到循环条件进行判断,如果依然成立,则继续执行循环体,如果不成立,则跳出while循环。

在while循环当中,一般总会有那么一行代码,能够改变循环条件,使之终有一天不再成立,如果没有那么一行代码能够改变循环条件,也就是循环条件永远都成立,我们称之这种循环叫做死循环。


最简单的最常用的死循环:

while(true)

{


}


特点:

先判断,再执行,有可能一遍循环都不执行。

五、break

1)、可以跳出switch-case结构。

2)、可以跳出当前循环。

break一般不单独的使用,而是跟着if判断一起使用,表示,当满足某些条件的时候,就不再循环了。

六、do-while循环

语法:

do

{

循环体;

}while(循环条件);

执行过程:

程序首先会执行do中的循环体,执行完成后,去判断do-while循环的循环条件,如果成立,则继续执行do中的循环体,如果不成立,则跳出do-while循环。

特点:

先循环,再判断,最少执行一遍循环体。

总结

提示:这里对文章进行总结:

例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。


目录
打赏
0
0
0
0
4
分享
相关文章
RabbitMQ之交换机
【1月更文挑战第9天】 RabbitMQ 消息传递模型的核心思想是: 生产者生产的消息从不会直接发送到队列。实际上,通常生产者甚至都不知道这些消息传递传递到了哪些队列中。 相反,生产者只能将消息发送到交换机(exchange),交换机工作的内容非常简单,一方面它接收来自生产者的消息,另一方面将它们推入队列。交换机必须确切知道如何处理收到的消息。是应该把这些消息放到特定队列还是说把他们到许多队列中还是说应该丢弃它们。这就的由交换机的类型来决定。
322 67
vue2、vue3分别配置echarts多图表的同步缩放(二)
vue2、vue3分别配置echarts多图表的同步缩放
401 0
Element表格和表单字典转换(静态和动态)(上)
Element表格和表单字典转换(静态和动态)(上)
801 0
2022云栖内容精选—AI助力新型电力系统建设
本篇内容主要分为三个部分: 1. “双碳”目标下的新型电力系统与挑战 2. 在电力预测、调度决策、虚拟电厂决策方向的创新与积累 3. 关于未来的产品展望
1379 1
2022云栖内容精选—AI助力新型电力系统建设
【OpenCV】如何在Linux操作系统下正确安装 OpenCV
【OpenCV】如何在Linux操作系统下正确安装 OpenCV
537 4
1000+停车场,为何都选择咪网平台
利用阿里云物联网平台全托管实例服务,浙江咪网电子科技有限公司搭建城市大脑停车系统、城市级停车运营管理平台,已经有1000多个停车场接入,实现智慧停车。
271 1
1000+停车场,为何都选择咪网平台
|
10月前
|
PHP
深入浅出PHP之文件上传功能
【9月更文挑战第26天】本文将带你了解PHP中的文件上传功能,从基本概念到实战操作,一步步教你如何实现文件上传。我们将通过代码示例和详细的解释,让你轻松掌握这一技能。
【Flume】Flume在大数据分析领域的应用
【4月更文挑战第4天】【Flume】Flume在大数据分析领域的应用
Mybatis之关联关系映射(带你进入Mybatis关联关系映射的世界)
Mybatis之关联关系映射(带你进入Mybatis关联关系映射的世界)
191 0
Mybatis之关联关系映射(带你进入Mybatis关联关系映射的世界)
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问