zoukankan      html  css  js  c++  java
  • (原创)c#学习笔记04--流程控制04--循环02--while循环

    4.4.2 while循环

      while循环非常类似于do循环,但有一个明显的区别:while循环中的布尔测试是在循环开始时进行,而不是最后。如果测试结果为false,就不会执行循环。程序会直接跳转到循环之后的代码。

      按下述方式指定while循环:

    while (<Test>) 
    { 
        <code to be looped> 
    }

      对上一章节中的示例,用while循环实现一遍,代码如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Ch04Ex05
    {
        class Program
        {
            static void Main(string[] args)
            {
                double balance, interestRate, targetBalance;
                Console.WriteLine( "What is your current balance?" );
                balance = Convert.ToDouble( Console.ReadLine() );
                Console.WriteLine( "What is your current annual interest rate (in %)?" );
                interestRate = 1 + Convert.ToDouble( Console.ReadLine() ) / 100.0;
                Console.WriteLine( "What balance would you like to have?" );
                targetBalance = Convert.ToDouble( Console.ReadLine() );
                int totalYears = 0;
                while( balance < targetBalance ) {
                    balance *= interestRate;
                    ++totalYears;
                }
                Console.WriteLine( "In {0} year{1} you'll have a balance of {2}.", totalYears, totalYears == 1 ? "":"s", balance );
                
                if( 0 == totalYears ) {
                    Console.WriteLine( "To be honest, you really didn't need to use this calculator." );
                }
                
                Console.ReadKey();
            }
        }
    }

      运行结果如下:

      可以检查用户输入,确保目标余额大于起始余额。此时,可以把用户输入部分放在循环中,如下所示:

    do { 
        targetBalance = Convert.ToDouble(Console.ReadLine()); 
        if (targetBalance <= balance) 
        Console.WriteLine("You must enter an amount greater than " + 
            "your current balance!
    Please enter another value."); 
    } while (targetBalance <= balance); 

      这将拒绝接受无意义的值。

      在设计应用程序时,用户输入的有效性检查是一个很重要的主题。

  • 相关阅读:
    Tuning 14 Using Oracle Data Storage Structures Efficiently
    Tuning 13 Using oracle blocks Efficiently
    Tuning 12 manage statistics
    Tuning SQL 11
    【TYVJ】1307 联络员(最小生成树)
    【wikioi】1022 覆盖(匈牙利)
    【TYVJ】1338 QQ农场(最大流+最大权闭合图)
    【BZOJ】3038: 上帝造题的七分钟2(线段树+暴力)
    【BZOJ】1087: [SCOI2005]互不侵犯King(状压dp)
    【BZOJ】1041: [HAOI2008]圆上的整点(几何)
  • 原文地址:https://www.cnblogs.com/wodehao0808/p/4899081.html
Copyright © 2011-2022 走看看