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 + " ");
}