草庐IT

C#的while循环详细介绍

几何小超 2023-04-10 原文

do为关键字,必须与while配对使用。do与while之间的语句称为循环体,该语句是用大括号括起来的复合语句。do...while语句中的表达式与while语句中的相同,也为关系表达式或逻辑表达式,注意的是,do...while语句后一定要有“;”。前面讲了条件结构,这一章我就开始讲循环结构

实现五行hello,world

class program{
      static void Main(string[]args){
      console.writeLine("hello,wold");
       console.writeLine("hello,wold");
       console.writeLine("hello,wold");
       console.writeLine("hello,wold");
       console.writeLine("hello,wold");
    }
}

我们现在用另一种循环

class program{
      static void Main(string[]args){
      int i=1;
      while(i<=5){
         console.writrLine("hello,world");
         i++;
        }
   }
}
     

简单介绍一下,先定义一个初始值i并给它赋值初始值1,然后进行循环,循环五次,当i等于6,条件不满足结束循环,

注意:最后的i++是计数,不加上会进入死循环,

使用while循环可以将很多麻烦的步骤省略掉,避免很多代码的重复操作

2.while循环的使用

现在来写一个1到100的自然数之和

namespace ConsoleApp3
{
    internal class Program
    {                                                       
        static void Main(string[] args)
        {

            int count = 1, sum = 0;//定义一个变量用count并赋值为1,在定义一个初始值sum=0
            while(count <= 100){//while循环如果count小于等于一百则继续循环
                sum += count;//把count的值赋给sum
                count++;
            }
            Console.WriteLine("1到100的自然数之和是{0}", sum);//最后输出sum
        }
    }
}

输出的结果是:

 3,这次讲一下while的使用结构

一、语法

C# while的语法:

while(循环条件)

{  

   循环体;

}

二、执行过程

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

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

最简单死循环:

while(true)

{

}

三、特点

先判断,在执行,有可能一遍都不执行。

接下来做一个小案例好吧!

namespace ConsoleApp3
{
    internal class Program
    {                                                       
        static void Main(string[] args)
        {

            int fan = 1;//数字阶乘运算结果
            int i = 1;//定义一个循环变量
            int num;//用户输入的数字
             //用户输入的数字
            Console.WriteLine("请猜一个数字(1到10之间):");
            num = int.Parse(Console.ReadLine());
           利用循环计算数字的阶乘
            while (i <= num)
            {
                fan *= i;
                i++;
            }
            Console.WriteLine("数字{0}的阶乘:{1}",num,fan);
        }
    }
}

2.深入理解while循环

接下来通过用while循环些一个银行的存款利禄

namespace ConsoleApp3
{
    internal class Program
    {                                                       
        static void Main(string[] args)
        {

            double balance = 100000;//使用双精度形式定义一个本金
            double rate = 0.05;//使用双精度形式定义一个年利率
            int years = 0;//运用整形定义一个初始值years
            while (balance <= 120000)//使用循环计算
            {
                balance += balance * rate;//进行下一年的本金:本金+利息
                years++;
                Console.WriteLine(years +"年之后,账号本金:"+balance.ToString("F2"));
            }
            Console.WriteLine("存款"+years+"后,账号本金将超过120000");
        }
    }
}

运行结果:

3.do.whlie循环

2、do...while循环

 在有些情况下无论循环条件是否成立,循环体的内容都要被执行一次,这时可以使用do...while循环。

        do...while循环的特点是先执行循环体,在判断循环条件,其语法格式如下:

do
{
语句
}while(表达式)

         do为关键字,必须与while配对使用。do与while之间的语句称为循环体,该语句是用大括号括起来的复合语句。do...while语句中的表达式与while语句中的相同,也为关系表达式或逻辑表达式,注意的是,do...while语句后一定要有“;”。

 3、区别
        while语句适用于先进行条件判断,再执行循环结构的场景;而do...while语句则适用于先执行循环结构,在进行条件判断的场合。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
 
namespace _20220731_2
{
    class Program
    {
        static void Main(string[] args)
        {
            int i = 1;
            int Sum = 0;
            do
            {
                Sum += i;
                i++;
            } while (i <= 100);
            Console.WriteLine(i);
            Console.WriteLine(Sum);
            Console.ReadKey();//这个是防止跳出弹出控制台
        }
     }
}

4.使用do while来写一个深入理解循环

namespace ConsoleApp3
{
    internal class Program
    {                                                       
        static void Main(string[] args)
        {
            string choose;
            Console.WriteLine("欢迎来到王者荣耀");
            do
            {
                Console.WriteLine("【1】选择亚瑟");
                Console.WriteLine("【2】选择妲己");
                Console.WriteLine("【3】选择李白");
                Console.WriteLine("【4】选择典韦");
                Console.WriteLine("【5】选择退出");
                Console.WriteLine("请选择");
                choose = Console.ReadLine();
                switch (choose)
                {
                    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;
                    default:
                        Console.WriteLine("输入有误,请重新输入");
                        break;

                }
            } while (choose != "5");
           
        }
    }
}


参考上一章的break语句,每一个case都需要带break语句,不然就会报错

案列

switch(i)
{
case 2:
Console.WriteLine(“你真2!”);
Console.WriteLine(“你真有才!”);
break;
case 4:
Console.WriteLine(“你去死吧!”);
break;
case 8:
Console.WriteLine(“发发发!”);
break;
}
Console.ReadKey();
}
}
}

(2)Switch的第二种结构:

switch(i)

case 1:

//

break;

case2:

//

break;

default:

//

break;

接下来做一个简单的猜字游戏案列

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

namespace 猜字游戏
{
    class Program
    {
        static void Main(string[] args)
        {
            Random n = new Random();
            var num = n.Next(1, 100);
            Console.WriteLine("猜字游戏开始!!!");


            for (; ; )
            {
                Console.Write("请给出一个数字:");
                int i = int.Parse(Console.ReadLine());
                if (i == num)
                {
                    Console.WriteLine("恭喜您,太厉害了,竟然被你猜中了!!!");
                    break;
                }
                else if (i > num)
                {
                    Console.WriteLine("太大了,再小一点!!!");
                }
                else if (i < num)
                {
                    Console.WriteLine("太小了,再大一点!!!");
                }
            }

        }
    }
}

以上就是博客分享的全部内容,创作不易多多三连哈哈哈!!!

有关C#的while循环详细介绍的更多相关文章

  1. ruby - 树顶语法无限循环 - 2

    我脑子里浮现出一些关于一种新编程语言的想法,所以我想我会尝试实现它。一位friend建议我尝试使用Treetop(Rubygem)来创建一个解析器。Treetop的文档很少,我以前从未做过这种事情。我的解析器表现得好像有一个无限循环,但没有堆栈跟踪;事实证明很难追踪到。有人可以指出入门级解析/AST指南的方向吗?我真的需要一些列出规则、常见用法等的东西来使用像Treetop这样的工具。我的语法分析器在GitHub上,以防有人希望帮助我改进它。class{initialize=lambda(name){receiver.name=name}greet=lambda{IO.puts("He

  2. ruby-on-rails - 在 Ruby 中循环遍历多个数组 - 2

    我有多个ActiveRecord子类Item的实例数组,我需要根据最早的事件循环打印。在这种情况下,我需要打印付款和维护日期,如下所示:ItemAmaintenancerequiredin5daysItemBpaymentrequiredin6daysItemApaymentrequiredin7daysItemBmaintenancerequiredin8days我目前有两个查询,用于查找maintenance和payment项目(非排他性查询),并输出如下内容:paymentrequiredin...maintenancerequiredin...有什么方法可以改善上述(丑陋的)代

  3. ruby - RuntimeError(自动加载常量 Apps 多线程时检测到循环依赖 - 2

    我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("

  4. c# - 如何在 ruby​​ 中调用 C# dll? - 2

    如何在ruby​​中调用C#dll? 最佳答案 我能想到几种可能性:为您的DLL编写(或找人编写)一个COM包装器,如果它还没有,则使用Ruby的WIN32OLE库来调用它;看看RubyCLR,其中一位作者是JohnLam,他继续在Microsoft从事IronRuby方面的工作。(估计不会再维护了,可能不支持.Net2.0以上的版本);正如其他地方已经提到的,看看使用IronRuby,如果这是您的技术选择。有一个主题是here.请注意,最后一篇文章实际上来自JohnLam(看起来像是2009年3月),他似乎很自在地断言RubyCL

  5. C# 到 Ruby sha1 base64 编码 - 2

    我正在尝试在Ruby中复制Convert.ToBase64String()行为。这是我的C#代码:varsha1=newSHA1CryptoServiceProvider();varpasswordBytes=Encoding.UTF8.GetBytes("password");varpasswordHash=sha1.ComputeHash(passwordBytes);returnConvert.ToBase64String(passwordHash);//returns"W6ph5Mm5Pz8GgiULbPgzG37mj9g="当我在Ruby中尝试同样的事情时,我得到了相同sha

  6. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  7. 基于C#实现简易绘图工具【100010177】 - 2

    C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.

  8. Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting - 2

    1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里

  9. 在VMware16虚拟机安装Ubuntu详细教程 - 2

    在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主

  10. ruby - Ruby 中的闭包和 for 循环 - 2

    我是Ruby的新手,有些闭包逻辑让我感到困惑。考虑这段代码:array=[]foriin(1..5)array[5,5,5,5,5]这对我来说很有意义,因为i被绑定(bind)在循环之外,所以每次循环都会捕获相同的变量。使用每个block可以解决这个问题对我来说也很有意义:array=[](1..5).each{|i|array[1,2,3,4,5]...因为现在每次通过时都单独声明i。但现在我迷路了:为什么我不能通过引入一个中间变量来修复它?array=[]foriin1..5j=iarray[5,5,5,5,5]因为j每次循环都是新的,我认为每次循环都会捕获不同的变量。例如,这绝对

随机推荐