Csharp/CSharp Tutorial/Statement/Do While
Содержание
Display the digits of an integer in reverse order with do while loop
<source lang="csharp">using System;
class MainClass {
public static void Main() { int num; int nextdigit; num = 198; Console.WriteLine("Number: " + num); Console.Write("Number in reverse order: "); do { nextdigit = num % 10; Console.Write(nextdigit); num = num / 10; } while(num > 0); Console.WriteLine(); }
}</source>
Number: 198 Number in reverse order: 891
Do while loop
A do-while loop will always execute at least once.
The general form of the do-while loop is
<source lang="csharp">do {
statements;
} while(condition);</source>
Do / while loop with a console read
<source lang="csharp">using System; using System.IO; class MainClass {
public static void Main(string[] args) { string ans; do { Console.Write("Are you done? [yes] [no] : "); ans = Console.ReadLine(); }while(ans != "yes"); }
}</source>
Are you done? [yes] [no] : yes
Use the do while statement to implement Newton"s method for finding the square root of a number
<source lang="csharp">using System; public class MainClass {
public static void Main( ) { double epsilon = 1.0e-9; double guess = 11.0; double result = 0.0; double value = 2; result = ((value / guess) + guess) / 2; do { Console.WriteLine( "Guess Value = {0}", guess ); Console.WriteLine( "Result Value = {0}", result ); guess = result; result = ((value / guess) + guess) / 2; } while( Math.Abs(result - guess) > epsilon ); Console.WriteLine("The approx sqrt of {0} is {1}", value, result ); }
}</source>
Guess Value = 11 Result Value = 5.59090909090909 Guess Value = 5.59090909090909 Result Value = 2.97431633407243 Guess Value = 2.97431633407243 Result Value = 1.82336988350512 Guess Value = 1.82336988350512 Result Value = 1.46012001740362 Guess Value = 1.46012001740362 Result Value = 1.41493521627426 Guess Value = 1.41493521627426 Result Value = 1.41421374640426 Guess Value = 1.41421374640426 Result Value = 1.41421356237311 The approx sqrt of 2 is 1.41421356237309