C# 循环语句 for循环
循环:反复执行某段代码。
循环四要素:初始条件,循环条件,循环体,状态改变。
for(初始条件;循环条件;状态改变)
{
循环体
}
给出初始条件,先判断是否满足循环条件,如果不满足条件则跳过for语句,如果满足则进入for语句执行,for语句内的代码执行完毕后,将按照状态改变,改变变量,然后判断是否否和循环条件,符合则继续执行for语句内的代码,直到变量i不符合循环条件则终止循环,或者碰到break命令,直接跳出当前的for循环。
break ——中断循环,跳出最近的循环循环
continue——停止本次循环,进入下次循环
循环(for)和分支语句(if else等)一样可以相互嵌套
死循环:
for (; ; )
{
Console.WriteLine("Hello");
}
注意:程序中不允许出现死循环!
应用
循环语比较繁琐,多加练习
1.输入一个整数,计算从1加到这个数的结果
Console.Write("请输入一个正整数:");
int a = int.Parse(Console.ReadLine());
int sum = 0;
for (int i = 1; i <= a; i++)
{
sum += i;//sum=sum+i;
}
Console.WriteLine(sum);
Console.ReadLine();
2.输入一个正整数,求阶乘
Console.Write("请输入一个正整数:");
int a = int.Parse(Console.ReadLine());
int sum = 1;
for (int i = 1; i <= a; i++)
{
sum *= i;//sum=sum*i;
}
Console.WriteLine(sum);
Console.ReadLine();
3.输入一个正整数,求阶乘的和1!+2!+...+n!
Console.Write("请输入一个正整数:");
int a = int.Parse(Console.ReadLine());
int sum = 1;
int sum1 = 0;
for (int i = 1; i <= a; i++)
{
sum *= i;//sum=sum*i;
if (i == 4)//不想要4的
{
continue;//终止本次循环,继续下次循环
}
sum1 += sum;
}
Console.WriteLine(sum1);
Console.ReadLine();
4.一个游戏,前20关是每一关自身的分数,
21-30关每一关是10分
31-40关,每一关是20分
41-49关,每一关是30分
50关,是100分
输入你现在闯到的关卡数,求你现在拥有的分数
两种做法:if嵌套for for嵌套if
(1)Console.Write("请输入您现在闯到的关卡数:");
int guan = int.Parse(Console.ReadLine());
if (guan >= 1 && guan <= 50)
{
int sum = 0;
if (guan <= 20)
{
for (int i = 1; i <= guan; i++)
{
sum += i;
}
}
else if (guan <= 30)
{
for (int i = 1; i <= 20; i++)
{
sum += i;
}
for (int i = 21; i <= guan; i++)
{
sum += 10;
}
}
else if (guan <= 40)
{
for (int i = 1; i <= 20; i++)
{
sum += i;
}
for (int i = 21; i <= 30; i++)
{
sum += 10;
}
for (int i = 31; i <= guan; i++)
{
sum += 20;
}
}
else if (guan <= 49)
{
for (int i = 1; i <= 20; i++)
{
sum += i;
}
for (int i = 21; i <= 30; i++)
{
sum += 10;
}
for (int i = 31; i <= 40; i++)
{
sum += 20;
}
for (int i = 41; i <= guan; i++)
{
sum += 30;
}
}
else//50关
{
for (int i = 1; i <= 20; i++)
{
sum += i;
}
for (int i = 21; i <= 30; i++)
{
sum += 10;
}
for (int i = 31; i <= 40; i++)
{
sum += 20;
}
for (int i = 41; i <= 49; i++)
{
sum += 30;
}
sum += 100;
}
Console.WriteLine(sum);
}
else
{
Console.WriteLine("输入有误!");
}
Console.ReadLine();
(2)Console.Write("请输入您现在闯到的关卡数:");
int guan = int.Parse(Console.ReadLine());
if (guan <= 50 && guan >= 1)
{
int sum = 0;
for (int i = 1; i <= guan; i++)
{
if (i <= 20)
{
sum += i;
}
else if (i <= 30)
{
sum += 10;
}
else if (i <= 40)
{
sum += 20;
}
else if (i <= 49)
{
sum += 30;
}
else
{
sum += 100;
}
}
Console.WriteLine(sum);
}
else
{
Console.WriteLine("输入有误!");
}
Console.ReadLine();
5.找出100以内与7有关的数并打印、
(1).从1找到100
(2).找出与7有关的数
个位数是7 a%10==7
十位数是7 a/10 ==7
能被7整除 a%7 ==0
for (int i = 1; i <= 100; i++)
{
if (i % 7 == 0 || i % 10 == 7 || i / 10 == 7)
{
Console.Write(i+"\t");
}
}
Console.ReadLine();