目录
while 当条件为真时执行其中的代码并从while再来一次直到条件为假或 return退出
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} 次");