C#入门学习——5

本文详细介绍了C#编程中的两种循环结构——while和do-while循环,包括它们的工作原理、执行流程及实际应用。通过实例展示了如何在循环中使用break关键字来跳出循环,并给出了do-while循环的典型应用场景。同时,强调了在编程中防止程序报错的注意事项。
摘要由CSDN通过智能技术生成

本篇复习两个循环结构,while和do-while

while循环

while(循环条件)

{

循环体;

}

执行过程:程序运行到while处,首先判断while所带的小括号内的循环条件是否成立,如果成立的话,也就是返回一个true,则执行循环体,执行完一遍循环体后,再次回到循环条件进行判断,如果依然成立,则继续执行循环体,如果不成立,则跳出while循环。在while循环当中,一般总会有一行代码,能够改变循环条件,使之终有一天不再成立,如果没有这么一行代码,能够改变循环条件,也就是循环条件永远成立,我们称之为死循环。

最简单的死循环:
while(true){
}

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


这里穿插一个小的点——break关键字。之前,我们在switch-case里面见到过,它的作用是跳出switch-case结构,在while循环中,它的作用是跳出当前的while循环。

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

            int i = 1;
            int j = 1;
            while (i <= 10)
            {
                while (j <= 10)
                {
                    Console.WriteLine("里面循环");
                    j++;
                    //break;
                }
                Console.WriteLine("外面循环");
                i++;
            }
            Console.ReadKey();

while练习

//要求用户输入账号密码,只要不是admin,88888,再次输入

循环体:输入账号密码

循环条件:账号不是admin,密码不是88888

            //string userName = "";
            //string userPwd = "";
            //while (userName != "admin" || userPwd != "888888")
            //{
            //    Console.WriteLine("请输入用户名");
            //    userName = Console.ReadLine();
            //    Console.WriteLine("请输入密码");
            //    userPwd = Console.ReadLine();
            //}
            //Console.WriteLine("登陆成功");
            //Console.ReadKey();

//输入班级人数,然后一次输入学员成绩,计算班级学员的平均成绩和总成绩
//循环体:提示输入成绩,接收,然后成绩相加
//循环条件:循环次数<=班级人数

            //int i = 1;
            //int sum = 0;//存放总成绩
            //Console.WriteLine("输入班级人数");
            //try//不能确定用户一定输入的是数字
            //{
            //    int number = Convert.ToInt32(Console.ReadLine());
            //    while (i <= number)//当班级人数大于n的时候循环输入成绩
            //    {
            //        Console.WriteLine("输入成绩\t第{0}个", i);
            //        try//不能确定用户输入的是数字
            //        {
            //            int score = Convert.ToInt32(Console.ReadLine());
            //            sum += score;
            //            i++;
            //        }
            //        catch
            //        {
            //            Console.WriteLine("输入成绩格式有误,请重新输入");
            //        }
            //    }
            //    Console.WriteLine("总成绩是{0},平均成绩是{1}", sum, sum / number);
            //}
            //catch
            //{
            //    Console.WriteLine("输入格式有误,退出程序");
            //}
            //Console.ReadKey();

//老师问学生,这题会做了吗,如果学生回答"会"(yes)则可以放学,
//如果学生不会(no),则老师再讲一遍,再问学生是否会了
//直到学生会为止,才可以放学
//直到学生会或老师讲了10遍还不会,都要放学
//循环体:老师讲题,老师问学生,学生回答。循环最多十次
//循环条件:学生回答no,老师讲题次数不多于10
这题遇到了一些困难,因为回答用的是string类型,所以一直在纠结怎么用try,后来发现不用。。

            //string respons = "";
            //int c = 1;
            //while (respons != "no" && c <= 10)
            //{
            //    Console.WriteLine("老师讲题\t第{0}次", c);
            //    Console.WriteLine("这题会做了吗,回答yes/no");
            //    respons = Console.ReadLine();
            //    if (respons == "yes")//如果学生回答yes,放学
            //    {
            //        Console.WriteLine("放学");
            //        break;
            //    }
            //    c++;
            //}
            //Console.WriteLine("放学");
            //Console.ReadKey();

 这里就用到了break,当回答是yes的时候,会跳出循环。


do-while循环

do

{

循环体

}while(循环条件);

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

特点:先循环,再判断,最少执行一次循环体。


do-while练习

//明天小兰就要登台演出了,老师说再把明天
//演出歌曲唱一遍,如果满意,小兰就可以回家
//否则再练习一次,直到老师满意。

//循环体:唱一遍歌,老师不满意,再唱一遍

//循环条件:老师不满意


            //遇见这种首先执行一遍循环体,拿着循环后的结果再去判断是否执行循环的循环
            //我们推荐用do——while循环。
            //string answer = "";
            //do
            //{
            //    Console.WriteLine("满意吗");
            //    answer = Console.ReadLine();
            //} while (answer=="no");
            //Console.WriteLine("回家吧");
            //Console.ReadKey();

//不断要求用户输入一个数字,然后打印这个数字的2倍,输入q结束

//循环体:输入数字,打印这个数字的2倍

//循环条件:输入的不是q

            //string input = "";
            //while (input != "q")
            //{
            //    Console.WriteLine("请输入一个数字,打印出2倍");
            //不能直接转换int类型,有可能输入q
            //    input = Console.ReadLine();//有三种情况,数字,q,乱七八糟的
            //    if (input != "q")//进行判断
            //    {
            //        try
            //        {
            //            int number = Convert.ToInt32(input);
            //            Console.WriteLine("您输入的数字的2倍是{0}", number * 2);
            //        }
            //        catch
            //        {
            //            Console.WriteLine("输入格式无效,重新输入");
            //        }
            //    }
            //    else//=q
            //    {
            //        Console.WriteLine("输入的是q,退出");
            //    }
            //}
            //Console.ReadKey();

//不断要求用户输入一个数字,假定输入的都是正整数,
//当用户输入end的时候显示刚才输入的数字中的最大值

//循环体:输入正整数

//循环条件:输入的不是end

            int max = 0;//定义一个变量存储最大值
            string input = "";
            do
            {
                Console.WriteLine("请输入一个数字");
                input = Console.ReadLine();
                if (input != "end")//当输入不为end的时候
                {
                    try//输入不一定为数字
                    {
                        int number = Convert.ToInt32(input);
                        if (max < number)//把输入的值和max比较,赋值给max
                        {
                            max = number;
                        }
                    }
                    catch
                    {
                        Console.WriteLine("输入格式有误,重新输入");
                    }
                }
                else
                {
                    Console.WriteLine("退出程序");
                }
            } while (input != "end");
            Console.WriteLine("输入的最大值是{0}", max);
            Console.ReadKey();

这部分知识有点绕,需要仔细琢磨几遍才能明白,我尤其在如何防止运行程序报错的地方发懵。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值