(1) while循环
当表达式为真,则执行下面的语句;语句执行完之后再判断表达式是否为真,如果为真,再次执行下面的语句;然后再判断表达式是否为真……就这样一直循环下去,直到表达式为假,跳出循环。
【案例】
输入一字符串,以按Enter键结束,统计该字符中英文字符、数字字符及其他字符的个数。
【案例目的】
掌握while语句的用法。
【代码及分析】
namespace ConsoleApp2 { class Program { static void Main(string[] args) { char c = Convert.ToChar(Console.Read()); int n = 0;//n为统计一共输入了多少个字符 int nz = 0, ns = 0,nq = 0; while (c != ' ') { if ((c >= 'a' && c <= 'z')|| (c >= 'A' && c<= 'Z'))//表示不管输入的英文字母是大小写都一并统计 nz++;//统计英文字符的变量 else if (c>='0'&&c<='9')//输入的数字字符统计 ns++;//统计数字字符的变量 else nq++;//统计其他字符的变量 c = Convert.ToChar(Console.Read()); n++; } Console.WriteLine("一共输入{0}个字符,其中英文字符有{1},数字字符有{2},其他字符有{3}", n - 1, nz, ns, nq - 1); Console.ReadLine(); } } }
运行结果如下:
(2)do-while循环
do…while 是先执行一次循环体,然后再判别表达式
【案例】
本案例输入一个自然数,要求将自然数的每一位数字按反序输出,例如:输入0254131,输出1314520 。
【案例目的】
掌握do-while循环语句及与while语句的区别。
【代码及分析】
namespace ConsoleApp4 { class Program { static void Main(string[] args) { int num, digital; Console.WriteLine("请输入一个自然数:"); num = int.Parse(Console.ReadLine()); do { digital = num % 10; num /= 10; Console.Write(digital); } while (num > 0); Console.ReadLine(); } } }
运行结果如下:
(3)for循环
表达式 1 首先执行且只执行一次;然后执行表达式 2,通常都是一个用于判定条件的表达式,如果表达式 2 条件成立,就执行(需要执行的语句);然后再执行表达式 3;再判断表达式 2,执行(需要执行的语句);再执行表达式 3.....一直到表达式 2 不成立时,跳出循环继续执行循环后面的语句。
【案例1】求阶乘的和
【代码】
namespace ConsoleApp2 { class Program { static void Main(string[] args) { int sum = 0; int n = int.Parse(Console.ReadLine()); for (int i = 0; i < n; i++) { int sum1 = 1;//定义变量sum1,每次循环都赋予其初始值1,求阶乘专用 for (int j = 1; j <= i + 1; j++) { sum1 = sum1 * j; } sum = sum + sum1;//将每次阶乘的和相加 } Console.WriteLine(sum); Console.ReadLine(); } } }
运行结果如下: