结构化编程:不确定迭代循环控制do while

简介:

很多时候,我们需要重复的执行一些代码,这样我们就需要迭代循环控制。以下案例描述了如何控制重复的执行。

假设,你购买房子的首付需要30万人民币,你入职工作的第一年,每月工资是3500,以后每年薪水增长20%。你是一个很有计划的人,无论薪水多少,你都将收入的一半存起来。那么,你需要多少年可以存到你需要的首付呢?

 
  1. static void Main(string[] args)  
  2. {  
  3.  
  4.     const double HOUSEFOUND = 200000;           //购房的首付款20W,常数  
  5.     double salary = 3500;                       //第一年的工资/月  
  6.     double fund = 0;                            //住房基金  
  7.     int years = 1;                              //年计数器  
  8.     while (fund < HOUSEFOUND)                   //存的基金不够首付,就继续存  
  9.     {  
  10.         fund += salary * 0.5 * 12;             //工资的50%是交纳住房基金  
  11.         years++;                                //加一年  
  12.         salary = salary * 1.2;                  //每年工资增加20%             
  13.     }  
  14.     System.Console.WriteLine("哎,钱攒{0}年了", years);  
  15.     Console.WriteLine("终于攒到了{0},命苦啊", fund.ToString("f0"));  

while语句,每次开始执行循环前需要进行判断,如果首次条件不满足,就不会进行循环执行。如果你至少要执行一次循环体中的代码,那就需要使用do语句。

 

 
  1. static void Main(string[] args)  
  2. {  
  3.  
  4.     const double HOUSEFOUND = 200000;           //购房的首付款20W,常数  
  5.     double salary = 3500;                       //第一年的工资/月  
  6.     double fund = 0;                            //住房基金  
  7.     int years = 1;                              //年计数器  
  8.     do 
  9.     {  
  10.         fund += salary * 0.5 * 12;             //工资的50%是交纳住房基金  
  11.         years++;                                //加一年  
  12.         salary = salary * 1.2;                  //每年工资增加20%              
  13.     }  
  14.     while (fund < HOUSEFOUND);  
  15.     System.Console.WriteLine("哎,钱攒{0}年了", years); //存的基金不够首付,就继续存  
  16.     Console.WriteLine("终于攒到了{0},命苦啊", fund.ToString("f0"));  

使用do语句,控制的途径将至少进入循环体内一次。

 

初学者注意:

do循环中,一定要有机制确保循环终止,否则会出现死循环。dowhile循环在语法上有一个差异值得重视,即do循环中while关键字之后需要使用;结束。而while循环通过{}控制语句的结束。



本文转自shyleoking 51CTO博客,原文链接:http://blog.51cto.com/shyleoking/805198

相关文章
|
安全 前端开发 关系型数据库
单机手动部署OceanBase集群
单机手动部署OceanBase的实验步骤,有详细截图
1406 0
|
自动驾驶 物联网 5G
毫米波技术及其在5G网络中的应用详解
毫米波技术及其在5G网络中的应用详解
1215 3
|
8月前
|
人工智能 搜索推荐 Serverless
云端问道22期——AI智能语音实时互动
《云端问道22期——AI智能语音实时互动》分享了构建用户与AI智能语音实时互动的方法,涵盖七个部分:进入解决方案页、方案介绍、操作步骤、创建AI智能体、实时工作模版、部署应用及应用体验。通过阿里云平台,用户可以快速部署并体验AI语音通话功能,包括语音转文字、文字转语音、个性化定制智能体人设及接入私有知识库等。整个过程简单流畅,适合开发者和企业快速上手。
414 8
|
10月前
|
边缘计算 Cloud Native 安全
云原生技术的未来发展趋势
云原生技术的未来发展趋势
274 1
|
人工智能 自然语言处理 算法
揭秘AI写作助手:技术原理与应用实践
在数字化浪潮的推动下,人工智能(AI)正逐步渗透到我们工作和生活的方方面面。本文将深入探讨AI写作助手的技术原理及其在不同场景的应用实例,旨在揭示这项技术如何助力内容创作、提升效率和质量。通过分析其背后的算法、数据处理方式以及实际运用效果,读者可以获得对AI写作工具更全面的认识,并了解如何利用这些工具优化自身的写作流程。
|
机器学习/深度学习 人工智能 自然语言处理
【深度学习】探讨最新的深度学习算法、模型创新以及在图像识别、自然语言处理等领域的应用进展
深度学习作为人工智能领域的重要分支,近年来在算法、模型以及应用领域都取得了显著的进展。以下将探讨最新的深度学习算法与模型创新,以及它们在图像识别、自然语言处理(NLP)等领域的应用进展。
399 6
|
开发工具 git
服务器定时自动拉取Git仓库代码自动部署
服务器定时自动拉取Git仓库代码自动部署
490 0
|
安全 Android开发 iOS开发
安卓与iOS移动操作系统的发展与比较
在移动互联网时代的今天,安卓和iOS作为两大主流移动操作系统,各自以其独特的特性和生态系统深刻影响着全球用户。本文将探讨它们的发展历程、核心特点以及在用户体验、开发生态和安全性方面的比较。
416 1
|
Devops 测试技术 持续交付
典型案例 | 基于全数字实时仿真的嵌入式DevOps解决方案
浙江省经信厅与省密码管理局联合开展的2023年信创典型案例评选,选出了36个应用示范案例和24个解决方案。其中,一个突出的典型解决方案是基于全数字实时仿真的嵌入式DevOps,它使用SkyEye软件提供自动化测试环境,提升研发效率。该方案适用于国防、工业等多个领域,通过高性能实时仿真、云部署和集成多种工具,实现嵌入式软件开发与硬件设计并行,降低成本,缩短研发周期。作为国内首创,它推动了信创在关键领域的应用。
205 0
|
存储 SQL 前端开发
瑞吉外卖精华部分总结(1)
瑞吉外卖精华部分总结(1)
397 0