5.C#循环结构(for、while、do-while)

目录

for C# 中的一种控制流语句,用于执行循环操作。

for循环案例10个

while 当条件为真时执行其中的代码并从while再来一次直到条件为假或 return退出

while循环案例10个

do-while 先运行一次再看条件表达式是否正确

10个do-while循环案例


for C# 中的一种控制流语句,用于执行循环操作。

for 循环允许你指定一个循环变量的初始值、循环条件和循环变量的递增或递减方式。循环体内的代码会在每次迭代中执行,直到循环条件不满足为止。

for (初始化表达式; 循环条件; 迭代表达式)
{
    // 循环体代码
}
————————————————————————————————————————————————————————————————————————————————————
for (int i = 0; i < 5; i++)
{
    Console.WriteLine(i);
}
// 每运行一遍 i 自增1
// 第一遍 i = 0; 运行
// 第二遍 i = 1; 运行
// 第三遍 i = 2; 运行
// 第四遍 i = 3; 运行
// 第五遍 i = 4; 运行
// 第六遍 i = 5; 条件表达式中是 i<5 才会运行 i=5 或者 i>5 则不会运行

所以当条件表达式中为false时则不会运行循环体代码,开始运行后面的代码

for循环案例10个

//1.从1到10打印奇数:
            Console.WriteLine("从1到10打印奇数");
            for (int i = 1; i <= 10; i += 2)
            {
                Console.WriteLine(i);
            }
// 2.从10到1倒序打印数字:
            Console.WriteLine("从10到1倒序打印数字");
            for (int i = 10; i >= 1; i--)
            {
                Console.WriteLine(i);
            }
// 3.从1到100打印所有能被3整除的数字:
            Console.WriteLine("从1到100打印所有能被3整除的数字");
            for (int i = 1; i <= 100; i++)
            {
                if (i % 3 == 0)
                {
                    Console.WriteLine(i);
                }
            }
// 4.打印乘法表:
            Console.WriteLine("打印乘法表");
            for (int i = 1; i <= 9; i++)
            {
                for (int j = 1; j <= i; j++)
                {
                    Console.Write($"{j}×{i}={i * j}\t");
                }
                Console.WriteLine();
            }
// 5.从1到10求和:
            Console.WriteLine("从1到10求和");
            int sum = 0;
            for (int i = 1; i <= 10; i++)
            {
                sum += i;
            }
            Console.WriteLine(sum);
//  6.打印菱形图案:
            Console.WriteLine("打印菱形图案");
            for (int i = 1; i <= 5; i++)
            {
                for (int j = 1; j <= 5 - i; j++)
                {
                    Console.Write(" ");
                }
                for (int k = 1; k <= 2 * i - 1; k++)
                {
                    Console.Write("*");
                }
                Console.WriteLine();
            }
            for (int i = 4; i >= 1; i--)
            {
                for (int j = 1; j <= 5 - i; j++)
                {
                    Console.Write(" ");
                }
                for (int k = 1; k <= 2 * i - 1; k++)
                {
                    Console.Write("*");
                }
                Console.WriteLine();
            }
//  7.打印斐波那契数列:
            Console.WriteLine("打印斐波那契数列");
            int n = 10;
            int a = 0, b = 1;
            for (int i = 1; i <= n; i++)
            {
                Console.WriteLine($"{a} ");
                int temp = a;
                a = b;
                b = temp + b;
            }
// 8.从1到10打印数字,如果是偶数则在数字前面加上"偶数",否则加上"奇数":
            Console.WriteLine("从1到10打印数字,如果是偶数则在数字前面加上\"偶数\",否则加上\"奇数\"");
            for (int i = 1; i <= 10; i++)
            {
                if (i % 2 == 0)
                {
                    Console.WriteLine($"偶数{i}");
                }
                else
                {
                    Console.WriteLine($"奇数{i}");
                }
            }
// 9.打印倒三角图案:
            Console.WriteLine("打印倒三角图案");
            for (int i = 5; i >= 1; i--)
            {
                for (int j = 1; j <= 5 - i; j++)
                {
                    Console.Write(" ");
                }
                for (int k = 1; k <= 2 * i - 1; k++)
                {
                    Console.Write("*");
                }
                Console.WriteLine();
            }
//10.打印1900 - 2100之间的闰年:
            Console.WriteLine("打印1900 - 2100之间的闰年");
            int startYear = 1900;
            int endYear = 2100;

            Console.WriteLine("从" + startYear + "到" + endYear + "之间的闰年有:");

            for (int year = startYear; year <= endYear; year++)
            {
                if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
                {
                    Console.WriteLine(year);
                }
            }	

while 当条件为真时执行其中的代码并从while再来一次直到条件为假或 return退出

// 局部变量定义
int a = 10;
// while 循环执行
while (a < 20)
   {
       a++;
   }
Console.ReadLine();
//当条件表达式中的 a>20 或 a=20 的时候退出循环 进行下一步操作
//不要把int a = 10; 写到while里不然每次循环都把a重新赋值为10将进入死循环

while循环案例10个

 	Console.WriteLine("1.输出1到10");
            int i = 1;
            while (i <= 10)
            {
                Console.WriteLine(i);
                i++;
            }


      Console.WriteLine("2.累加1到100");
            int sum = 0;
            int p = 1;
            while (p <= 100)
            {
                sum += p;
                p++;
            }

            Console.WriteLine("1到100的和为:" + sum);


     Console.WriteLine("3.求一个数的阶乘");
            int num = 5;
            int factorial = 1;
            i = 1;
            while (i <= num)
            {
                factorial *= i;
                i++;
            }

            Console.WriteLine(num + "的阶乘为:" + factorial);


      Console.WriteLine("4.判断一个数是否为质数");
            int num1 = 17;
            bool isPrime = true;
             i = 2;
            while (i < num1)
            {
                if (num1 % i == 0)
                {
                    isPrime = false;
                    break;
                }
                i++;
            }

            if (isPrime)
            {
                Console.WriteLine(num + "是质数");
            }
            else
            {
                Console.WriteLine(num + "不是质数");
            }


      Console.WriteLine("5.计算圆周率");
            double pi = 0;
            double n = 1;
            int sign = 1;

            while (n <= 1000000)
            {
                pi += sign * 4 / n;
                n += 2;
                sign = -sign;
            }

            Console.WriteLine("圆周率的近似值为:" + pi);


      Console.WriteLine("6.打印菱形图案");
            int c = 5;
             i = 1;

            while (i <= c)
            {
                int j = 1;
                while (j <= c - i)
                {
                    Console.Write(" ");
                    j++;
                }
                j = 1;
                while (j <= 2 * i - 1)
                {
                    Console.Write("*");
                    j++;
                }
                Console.WriteLine();
                i++;
            }

            i = c - 1;
            while (i >= 1)
            {
                int j = 1;
                while (j <= c - i)
                {
                    Console.Write(" ");
                    j++;
                }
                j = 1;
                while (j <= 2 * i - 1)
                {
                    Console.Write("*");
                    j++;
                }
                Console.WriteLine();
                i--;
            }


      Console.WriteLine("7.猜数字游戏");
            Random rand = new Random();
            int secretNumber = rand.Next(1, 101);

            Console.WriteLine("猜数字游戏开始,请输入一个1到100的整数:");
            int guess = int.Parse(Console.ReadLine());

            while (guess != secretNumber)
            {
                if (guess > secretNumber)
                {
                    Console.WriteLine("你猜的数字太大了,请重新输入:");
                }
                else
                {
                    Console.WriteLine("你猜的数字太小了,请重新输入:");
                }
                guess = int.Parse(Console.ReadLine());
            }
            Console.WriteLine("恭喜你猜对了,答案就是:" + secretNumber);


      Console.WriteLine(" 8.生成斐波那契数列");
            int count = 10;
            int a = 0;
            int b = 1;

            while (count > 0)
            {
                Console.Write(a + " ");
                int temp = a + b;
                a = b;
                b = temp;
                count--;
            }


      Console.WriteLine("9.计算整数平方根");
            int num2 = 16;
            int sqrt = 0;
             i = 1;

            while (i * i <= num2)
            {
                sqrt = i;
                i++;
            }
            Console.WriteLine(num2 + "的整数平方根为:" + sqrt);


      Console.WriteLine("10.计算两个数的最大公约数");
            int num3 = 24;
            int num4 = 36;

            while (num4 != 0)
            {
                int temp = num3 % num4;
                num3 = num4;
                num4 = temp;
            }
            Console.WriteLine("24和36的最大公约数为:" + num3);			

do-while 先运行一次再看条件表达式是否正确

/* 局部变量定义 */
int a = 10;

/* do 循环执行 */
    do
    {
       a = a + 1;
    } while (a < 20);

10个do-while循环案例

      Console.WriteLine(" 1.输入数字n,计算1到n的和。");
            int n, sum = 0, i = 1;
            Console.Write("请输入一个正整数:");
            n = Convert.ToInt32(Console.ReadLine());
            do
            {
                sum += i;
                i++;
            } while (i <= n);
            Console.WriteLine("1到" + n + "的和为:" + sum);


     Console.WriteLine("2.输入数字n,计算n的阶乘。 阶乘定义为:n! = n * (n - 1) * (n - 2) * ... *1。");
            int p, factorial = 1, o = 1;
            Console.Write("请输入一个正整数:");
            p = Convert.ToInt32(Console.ReadLine());
            do
            {
                factorial *= o;
                o++;
            } while (o <= p);
            Console.WriteLine(p + "的阶乘为:" + factorial);


     Console.WriteLine("3.输入数字n,判断其是否是质数。");
            int q, w= 2;
            bool isPrime = true;
            Console.Write("请输入一个正整数:");
            q = Convert.ToInt32(Console.ReadLine());
            do
            {
                if (q % w == 0)
                {
                    isPrime = false;
                    break;
                }
                w++;
            } while (w < q);
            Console.WriteLine(q + (isPrime ? "是" : "不是") + "质数。");


           


     Console.WriteLine("4.让用户输入一个数字n,计算斐波那契数列的第n项。 斐波那契数列定义为:前两项是1和1,后面的每一项都是前两项之和。");
            int a, f1 = 1, f2 = 1, f3, s = 2;
            Console.Write("请输入一个正整数:");
            a = Convert.ToInt32(Console.ReadLine());
            if (a <= 2)
            {
                Console.WriteLine("斐波那契数列的第" + a + "项为1。");
            }
            else
            {
                do
                {
                    f3 = f1 + f2;
                    f1 = f2;
                    f2 = f3;
                    s++;
                } while (s <= a);
                Console.WriteLine("斐波那契数列的第" + a + "项为:" + f3);
            }


      Console.WriteLine("5.输入数字,一直累加,直到输入0结束,并输出总和。");
            int num, sum1 = 0;
            do
            {
                Console.Write("请输入数字:");
                num = Convert.ToInt32(Console.ReadLine());
                sum1 += num;

            } while (num != 0);
            Console.WriteLine("总和为:" + sum1);


      Console.WriteLine("6.输入数字,计算数字的平均值,输入0结束。");
            int num1, sum2 = 0, count = 0;
            double average;
            do
            {
                Console.Write("请输入数字:");
                num1 = Convert.ToInt32(Console.ReadLine());
                sum2 += num1;
                count++;
            } while (num1 != 0);
            average = (double)sum2 / (count - 1);
            Console.WriteLine("平均值为:" + average);


      Console.WriteLine("7.输入用户名和密码,当用户名不是“admin”或密码不是“123456”时,重新输入。 直到输入正确为止。");
            string username, password;
            do
            {
                Console.Write("请输入用户名:");
                username = Console.ReadLine();
                Console.Write("请输入密码:");
                password = Console.ReadLine();
            } while (username != "admin" || password != "123456");
            Console.WriteLine("登录成功!");


      Console.WriteLine("8.随机生成一个1~100的整数,让用户猜数字,直到猜对为止。 每次猜错时给出提示,告诉用户是猜大了还是猜小了。");
            Random rando = new Random();
            int targe = rando.Next(1, 101);
            int gues;
            do
            {
                Console.Write("请输入一个1~100的整数:");
                gues = Convert.ToInt32(Console.ReadLine());
                if (gues > targe)
                {
                    Console.WriteLine("猜大了!");
                }
                else if (gues < targe)
                {
                    Console.WriteLine("猜小了!");
                }
            } while (gues != targe);
            Console.WriteLine("恭喜你,猜对了!");


     Console.WriteLine("9.输出九九乘法表:");
            int z = 1;
            do
            {
                int x = 1;
                do
                {
                    Console.Write(z + "x" + x + "=" + (z * x) + "\t");
                    x++;
                } while (x <= z);
                Console.WriteLine();
                z++;
            } while (z <= 9);
     Console.WriteLine("10.掷骰子直到出现6");
            int roll;
            int numRolls = 0;

            do
            {
                numRolls++;
                roll = new Random().Next(1, 7); // 生成1到6之间的随机数
                Console.WriteLine($"第 {numRolls} 次掷骰子结果为:{roll}");
            } while (roll != 6);

            Console.WriteLine($"掷出6点共用了 {numRolls} 次");

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值