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循环
在有些情况下无论循环条件是否成立,循环体的内容都要被执行一次,这时可以使用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("太小了,再大一点!!!");
}
}
}
}
}
以上就是博客分享的全部内容,创作不易多多三连哈哈哈!!!
我脑子里浮现出一些关于一种新编程语言的想法,所以我想我会尝试实现它。一位friend建议我尝试使用Treetop(Rubygem)来创建一个解析器。Treetop的文档很少,我以前从未做过这种事情。我的解析器表现得好像有一个无限循环,但没有堆栈跟踪;事实证明很难追踪到。有人可以指出入门级解析/AST指南的方向吗?我真的需要一些列出规则、常见用法等的东西来使用像Treetop这样的工具。我的语法分析器在GitHub上,以防有人希望帮助我改进它。class{initialize=lambda(name){receiver.name=name}greet=lambda{IO.puts("He
我有多个ActiveRecord子类Item的实例数组,我需要根据最早的事件循环打印。在这种情况下,我需要打印付款和维护日期,如下所示:ItemAmaintenancerequiredin5daysItemBpaymentrequiredin6daysItemApaymentrequiredin7daysItemBmaintenancerequiredin8days我目前有两个查询,用于查找maintenance和payment项目(非排他性查询),并输出如下内容:paymentrequiredin...maintenancerequiredin...有什么方法可以改善上述(丑陋的)代
我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("
如何在ruby中调用C#dll? 最佳答案 我能想到几种可能性:为您的DLL编写(或找人编写)一个COM包装器,如果它还没有,则使用Ruby的WIN32OLE库来调用它;看看RubyCLR,其中一位作者是JohnLam,他继续在Microsoft从事IronRuby方面的工作。(估计不会再维护了,可能不支持.Net2.0以上的版本);正如其他地方已经提到的,看看使用IronRuby,如果这是您的技术选择。有一个主题是here.请注意,最后一篇文章实际上来自JohnLam(看起来像是2009年3月),他似乎很自在地断言RubyCL
我正在尝试在Ruby中复制Convert.ToBase64String()行为。这是我的C#代码:varsha1=newSHA1CryptoServiceProvider();varpasswordBytes=Encoding.UTF8.GetBytes("password");varpasswordHash=sha1.ComputeHash(passwordBytes);returnConvert.ToBase64String(passwordHash);//returns"W6ph5Mm5Pz8GgiULbPgzG37mj9g="当我在Ruby中尝试同样的事情时,我得到了相同sha
?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------
C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.
1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里
在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主
我是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每次循环都是新的,我认为每次循环都会捕获不同的变量。例如,这绝对