什么是循环
比如说有一件事情,想要重复的去做,比如玩游戏时候快速刷副本,或者做回合制的游戏,一人攻击一下的那种,都是循环
循环分三种
while 循环
while(循环的条件,条件为true,就会接着循环,直到条件为false,循环结束){
//循环体内部(循环的内容)
}
举两个简单的小例子
/**********************************************第一题*******************************************************/
//1+2+3+4+5+6+......+100的和
// 正确答案5050
//声明一个变量 用来存储数字加在一起
int a = 0;
//在声明一个变量 用作当前数字,也可以当计数器,自增
int b = 1;
//while 循环 条件是要小于等于数字100
while(b <= 100){
//每次进入循环体后,要把数字加在一起
a += b;
//自增
b++;
}
//最后打印一下结果
Console.WriteLine(a);
/**********************************************第二题*******************************************************/
//1-100之间的所有的偶数
//先声明一个变量,当计数器
int a = 1;
//while 循环 条件是要小于等于数字100
while(a <= 100){
//判断 因为是要偶数 那么只要能除开2的数 没有余数 那就是偶数
if(a % 2 == 0){
//打印一下a就可以了
Console.WriteLine(a);
}
//自增
a++;
}
break 关键词
跳出循环用的关键词
//玩家的攻击力
int playerAtk = 8;
//敌人的血量 随机的血量数100,300
int enemyHp = new Random().Next(100,300);
//简化思路,不写具体的条件,写成死循环
while(true){
//玩家的伤害随机数
int damage = new Random().Next(playerAtk - 2,playerAtk + 2);
//这句话等于enemyHp = enemyHp - damage
enemyHp -= damage;
//控制台打印这句话
Console.WriteLine("玩家对敌人造成了" + damage + "点伤害");
//if语句判断如果敌人血量小于等于零 就break(跳出)
if(enemyHp <= 0){
break;//break这个关键词 不会去看if 他会找到最近的循环while 然后就跳出了这个循环
}
}
continue 关键词
跳过本次循环,继续下一次循环,接着上面代码写,上面代码注释删除了
int playerAtk = 8;
int enemyHp = new Random().Next(100,300);
while(true){
//比如我现在要实现一个闪避的功能 就能用到continue关键词
//随机一个0-10的数 不包含10 也就是0-9 如果他大于7 那就continue
if(new Random().Next(0,10) > 7 ){
//提示的话
Console.WriteLine("依靠走位躲开了你的攻击");
continue;
}
int damage = new Random().Next(playerAtk - 2,playerAtk + 2);
enemyHp -= damage;
Console.WriteLine("玩家对敌人造成了" + damage + "点伤害");
if(enemyHp <= 0){
break;
}
}
do…while 循环
do{
//不管你条件是啥 我先执行一遍
}while(执行完一遍之后,再过来看条件,条件是true的话,我在接着执行,是false的话,结束循环)
举个小例子
//1+2+3+4+......+N,求不超过10000的最大整数值和项值N
//声明一个变量 总和
int num = 0;
//计数器
int i = 1;
do{
num += i;
i++;//自增
}while(num <= 10000)//条件是小于等于10000
Console.WriteLine((num - i) + " , " + (i - 1));//数值超过了 减一下 打印结果 9869 141
for 循环
最常用的循环,反正我还是比较喜欢这种 while 啥的,老忘写点啥。。。
for(写循环的起点;循环的条件;循环的增量){
中间这块写循环的内容
}
举个例子
//for循环打印1-100不是7的倍数,而且数字里不能有7
for(int i = 1;i <= 100;i++){
//不是7的倍数 取余7 不等于(因为不要7)
//数字不能有7 要%10
if(i % 7 != 0
&& i % 10 != 7
&& i % 100 / 10 != 7
&& i % 1000 / 100 != 7){
Console.WriteLine(i);
}
}
for 循环的循环嵌套 99乘法口诀表
for(int i = 1;i <= 9;i++){//i是最外层的 1*9=9 那这个就是9
for(int j = 1;j <= i;j++){
Console.Write("{0}×{1}={2}",j ,i ,j * i);
}
//换行
Console.Write("\n");
}