分支语句 if switch; 循环语句 while; for ;do while ;goto语句
1.for循环
当我们知道while循环后,但是为什么要知道一个for循环呢,首先让我们来看看for循环的语法:
for(表达式1;表达式2;表达式3)
循环语句;
* 表达式1为初始化部分,用于初始化循环变量的。
* 表达式2为条件判断部分,用于判断循环时候终止。
* 表达式3为调整部分,用于循环条件的调整。
来个练习题感受一下:“使用for循环 在屏幕上打印1-10的数字”
#include
int main()
{
int i = 0;
//for(i=1/*初始化*/; i<=10/*判断部分*/; i++/*调整部分*/) 需要注意逻辑顺序别弄乱啦,铁铁们!
for(i=1; i<=10; i++)
{
printf("%d ", i);
}
return 0;
}
那现在咱们对比一下for循环和while循环,感受一下
int i = 0; //实现相同的功能,使用while
i=1;//初始化部分
while(i<=10)//判断部分
{
printf("hehe\n");
i = i+1;//调整部分
}
//实现相同的功能,使用while
for(i=1; i<=10; i++)
{
printf("hehe\n");
}
就是怎么说呢,用while循环时等后期查找修改就不够集中和方便了,总体来说,for循环的风格和使用频率都是最好的。
1.2 for循环中 break 和 continue
//代码1
#include
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
if (i == 5)
break;
printf("%d ", i);
}
return 0;
}
//代码2
#include
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
if (i == 5)
continue;
printf("%d ", i);
}
return 0;
}
我们发现在for循环中也可以出现break和continue,他们的意义和在while循环中是一样的。 但是还是有些差异:但其实大同小异,在做题中就会慢慢的体会到。
在for语句的循环控制变量里建议for语句的循环控制变量的取值采用“前闭后开区间”写法。不可以在for 循环体内修改循环变量,防止 for 循环失去控制。
来一道作业题看看
#include
int main()
{
int i = 0;
int k = 0;
for(i =0,k=0; k=0; i++,k++)
k++;
return 0;
}
这个循环要循环多少次呢?
第一次看到题就知道首先表达式1( i = 0,k = 0;) 表达式2( k = 0; ) 表达式3( i++, k++ )然后 k++;
意思就是当i等于0,k等于0时,如果k等于0,则i循环,k循环(重点在于表达式2,因为k本身就是0那怎么办)
所以到k++那里就直接跳过了所以无输出
2.do...while()循环
2.1 do语句的语法
do
循环语句;
while(表达式);
do的特点:循环至少执行一次,使用的场景有限,所以不是经常使用。
#include
int main()
{
int i = 1;
do
{
printf("%d ", i);
i = i + 1;
} while (i <= 10);
return 0;
}
do while循环中的break和continue
#include
int main()
{
int i = 1;
do
{
if(5 == i)
break; // continue;
printf("%d ", i);
i=i+1;
}while(i<=10);
return 0;
}
3.goto语句
C语言中提供了可以随意滥用的 goto语句和标记跳转的标号。 从理论上 goto语句是没有必要的,实践中没有goto语句也可以很容易的写出代码。 但是某些场合下goto语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过 程。 例如:一次跳出两层或多层循环。 多层循环这种情况使用break是达不到目的的。它只能从最内层循环退出到上一层的循环。
4.经过学习循环我们可以简单的写一个小游戏,“ 猜数字游戏的实现 ”
#include
#include
#include
void menu()
{
printf("**********************************\n");
printf("*********** 1.play **********\n");
printf("*********** 0.exit **********\n");
printf("**********************************\n");
}
//RAND_MAX--rand函数能返回随机数的最大值。
void game()
{
int random_num = rand() % 100 + 1;
int input = 0;
while (1)
{
printf("请输入猜的数字>:");
scanf("%d", &input);
if (input > random_num)
{
printf("猜大了\n");
}
else if (input < random_num)
{
printf("猜小了\n");
}
else
{
printf("恭喜你,猜对了\n");
break;
}
}
}
int main()
{
int input = 0;
srand((unsigned)time(NULL));
do
{
menu();
printf("请选择>:");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
break;
default:
printf("选择错误,请重新输入!\n");
break;
}
} while (input);
return 0;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)