C#中的,for循环 和 while循环 的一个小练习 --- 一定要先看懂代码,在cv

1 篇文章 0 订阅
1 篇文章 0 订阅

while 循环:

1.做⼀个死循环

            while (true)
            {
                Console.WriteLine("请输入一个数字(输入0退出):");
                if (int.TryParse(Console.ReadLine(), out int number) && number == 0) break;
                Console.WriteLine("您输入的数字是:" + number);
            }
            Console.WriteLine("程序已退出。");

2.敌⼈攻击的AI:当主⾓⾎量⼤于0的时候,就⼀直攻击主⾓。

            int playerHealth = 10; //初始血量
            while (playerHealth > 0)
            {
                Console.WriteLine("敌人正在攻击主角!");
                playerHealth -= 1; // 每次攻击主角,使其血量减少1
                Console.WriteLine("主角的剩余血量:" + playerHealth);
            }
            Console.WriteLine("主角已被击败,游戏结束。");

 3.控制循环执⾏次数 输出1-100和1-1000 

        以下和 js中的封装有点类似:在第一个函数体调用第二个函数 PrintNumbers()然后进行传值

            PrintNumbers(100, "输出1-100:");
            PrintNumbers(1000, "\n输出1-1000:");
        static void PrintNumbers(int limit, string message)
        {
            Console.WriteLine(message);
            int count = 1;
            while (count <= limit)
            {
                Console.WriteLine(count);
                count++;
            }

        }

5.输⼊整数n,计算1+2+3+...+n的和

            Console.Write("请输入一个整数 n:");
            int n = Convert.ToInt32(Console.ReadLine());
            int sum = 0;
            int i = 1;
            while (i <= n)
            {
                sum += i;
                i++;
            }
            Console.WriteLine("1+2+3+...+" + n + " 的和为:" + sum);

6.输⼊两个整数n1,n2,输出n1-n2(包含n1和n2)之间所有的偶数。

            Console.WriteLine("请输入两个整数 n1 和 n2:");
            int n1 = Convert.ToInt32(Console.ReadLine());
            int n2 = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("n1和n2之间的所有偶数有:");
            int num = n1;
            while (num <= n2)
            {
                if (num % 2 == 0) Console.WriteLine(num);
                num++;
            }

7.2006年培养学员80000⼈,每年增⻓25%,请问按此增⻓速度,到哪⼀年培训学员⼈数将达到20万⼈?
 

            int currentYear = 2006;
            int totalStudents = 80000;

            while (totalStudents <= 200000)
            {
                totalStudents += (int)(totalStudents * 0.25);
                currentYear++;
            }
            Console.WriteLine("到达20万人的年份为:" + currentYear);

for循环:

8.利⽤for循环输出1-100之间所有的偶数和与奇数和

for方法:

            int evenSum = 0, oddSum = 0;
            for (int i = 1; i <= 100; i++)
            {
                if (i % 2 == 0) evenSum += i;
                else oddSum += i;
            }
            Console.WriteLine("偶数和: " + evenSum + "---奇数和: " + oddSum);

 while方法:

            int num = 1, evenSum = 0, oddSum = 0;
            while (num <= 100)
            {
                if (num % 2 == 0) evenSum += num;
                else oddSum += num;
                num++;
            }
            Console.WriteLine("1到100之间的偶数和为:" + evenSum);
            Console.WriteLine("1到100之间的奇数和为:" + oddSum);

 9.让⽤户输⼊整数,如果⽤户输⼊的不是0,就继续输⼊,如果输⼊的是0,结束循环,并输出所 有整数的和。

for方法:

            int sum = 0, num;
            for (; ; )
            {
                Console.Write("请输入一个整数(输入0退出): ");
                num = Convert.ToInt32(Console.ReadLine());
                if (num == 0) break;
                sum += num;
            }
            Console.WriteLine("所有整数的和为:" + sum);

 while方法:

            int sum = 0, num;
            while (true)
            {
                Console.Write("请输入一个整数(输入0退出): ");
                num = Convert.ToInt32(Console.ReadLine());
                if (num == 0) break;
                sum += num;
            }
            Console.WriteLine("所有整数的和为:" + sum);

 10.水仙花数

100-1000的水仙花数

            Console.WriteLine("水仙花数列表:");
            for (int number = 100; number < 1000; number++)
            {
                int digit1 = number % 10;
                int digit2 = (number / 10) % 10;
                int digit3 = (number / 100) % 10;
                int sum = (digit1 * digit1 * digit1) + (digit2 * digit2 * digit2) + (digit3 * digit3 * digit3);
                if (sum == number)
                {
                    Console.WriteLine("这个是水仙花数{0}", number);
                }
            }

10-1000的水仙花数

            for (int number = 10; number <= 1000; number++)
            {
                int sum = 0;
                int originalNumber = number;

                while (number > 0)
                {
                    int digit = number % 10;
                    sum += digit * digit * digit;
                    number /= 10;
                }

                if (sum == originalNumber)
                {
                    Console.WriteLine(originalNumber);
                }
            }

11.输入一个未知的整数,然后输出这个整数上的每一个数字 输出的时候从个位开始输出, 每输出一个数字换一行

while方法:

            Console.Write("请输入一个整数:");
            int number = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("整数的每个数字从个位开始依次为:");

            while (number > 0)
            {
                int digit = number % 10;
                Console.WriteLine(digit);
                number /= 10;
            }

 for方法:

            Console.Write("请输入一个整数: ");
            int num = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("每位数字从个位开始逐行输出:");
            for (; num != 0; num /= 10)
            {
                int d = num % 10;
                Console.Write(d);
            }

12.输⼊两个正整数n和m,计算n和m之间(包含n和m)所有能被17整除的数的和,并输出和。

            Console.Write("请输入正整数n:");
            int n = int.Parse(Console.ReadLine());

            Console.Write("请输入正整数m:");
            int m = int.Parse(Console.ReadLine());

            int sum = 0;
            for (int i = n; i <= m; i++)
            {
                if (i % 17 == 0) sum += i;

            }

            Console.WriteLine("n和m之间所有能被17整除的数的和为:" + sum);

13. 输⼊两个正整数n和m,利⽤for循环打印出来n和m之间(包含n和m),所有的奇数和所有的偶数。奇数放在⼀⾏,⽤空格分割。偶数放在⼀⾏,⽤空格分割。

    1 --- 封装的写法 :

          Console.Write("请输入正整数n:");
            int n = int.Parse(Console.ReadLine());
            Console.Write("请输入正整数m:");
            int m = int.Parse(Console.ReadLine());

            PrintOddNumbers(n, m);
            Console.WriteLine();

            PrintEvenNumbers(n, m);
            Console.WriteLine();
      static void PrintOddNumbers(int n, int m)
        {
            Console.WriteLine("n和m之间的奇数:");
            for (int i = n; i <= m; i++){
                if (IsOdd(i))  Console.Write(i + " "); 
            }
        }

        static void PrintEvenNumbers(int n, int m)
        {
            Console.WriteLine("n和m之间的偶数:");
            for (int i = n; i <= m; i++){
                if (IsEven(i))  Console.Write(i + " ");  
            }
        }
        static bool IsOdd(int number)
        {
            return number % 2 != 0;
        }

        static bool IsEven(int number)
        {
            return number % 2 == 0;
        }

2 -- 没有封装的写法:

using System;

class Program
{
    static void Main()
    {
        Console.WriteLine("请输入两个正整数n和m:");
        int n = Convert.ToInt32(Console.ReadLine());
        int m = Convert.ToInt32(Console.ReadLine());

        Console.WriteLine("n和m之间的奇数:");
        for (int i = n; i <= m; i++)
        {
            if (i % 2 != 0) Console.Write(i + " ");
      
        }

        Console.WriteLine("\nn和m之间的偶数:");
        for (int i = n; i <= m; i++)
        {
            if (i % 2 == 0) Console.Write(i + " ");
           
        }
    }
}

3 -- 简化的写法:

Console.WriteLine("请输入两个正整数n和m:");
int n = int.Parse(Console.ReadLine());
int m = int.Parse(Console.ReadLine());

Console.WriteLine("n和m之间的奇数:");
for (int i = n; i <= m; i += 2)
{
    Console.Write(i + " ");
}
Console.WriteLine("\nn和m之间的偶数:");
for (int i = n + 1; i <= m; i += 2)
{
    Console.Write(i + " ");
}

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值