概述
1.循环语句可以反复多次执行同一组语句
2.for关键字可以用来编写循环
可以在for循环里让一个变量依次代表一组数字,然后使用同一组语句处理这个变量代表的每一个数字。
这个变量叫做循环变量。
按照统一的规律从第一个数字开始,把每个数字都计算处理并让循环变量代表它
以下格式用来描述循环变量的变化过程。
(把开始的数字赋值给循环变量;用逻辑表达式描述循环变量和结束数字之间的关系;根据前一个数字计算后一个数字的规则)
例子:
如果一个问题的解决过程中包含一组数字的变化过程,每个数字的处理方法又类似就可以解决这个问题。
练习:
#include <stdio.h>
int main() {
int j = 9;
for(int i=1;i<6;i++)
{
printf("%d x %d = %dn",i,j,i*j);
j--;
}
return 0;
}
练习:
#include <stdio.h>
int main() {
int num1=0,num2=0,temp=0,ans=0;
printf("请输入两个整数:");
scanf("%d%d",&num1,&num2);
if(num1>num2){
temp = num1;
num1 = num2;
num2 = temp;
}
for(int num=num1;num<num2;num++)
{
if(num & 1)
{
ans += num;
}
}
printf("这两个数之间的奇数和为:%d",ans);
return 0;
}
假设有如下的for循环
for(1;2;3) {
4;
}
它按照以下方式分组执行:
[1,2] [4,3,2] [4,3,2]......[4,3,2]
第一组和所有其它组都不同
正常情况下for循环一定在两组之间结束,如果某一组最后编号为2的逻辑表达式结果为真就启动下一组,否则结束循环。
如果for循环正常结束则循环结束后,循环变量落在指定数字范围之外。
for循环有可能不执行大阔号里面的语句。
for循环小括号里每条语句都可以省略
for循环小括号里中间的逻辑表达式,如果省略就表示逻辑表达式永远为真,这种循环不能正常结束,它们叫做死循环。
例子:会无限循环下去,直到计算机没有内存
for循环小括号里前面和后面的部分,可以是用逗号连接的多条语句。
例子:
C99规范允许在for循环的小括号里临时声明循环变量。这种循环变量只能在循环里使用,循环结束后就不能使用了。
例子:
练习:
#include <stdio.h>
int main() {
int rabbit=0;
for(rabbit=0;rabbit<=40;rabbit++)
if(4*rabbit+2*(40-rabbit)==100)
{
printf("兔子有%d只,鸡有%d只",rabbit,40-rabbit);
break;
}
return 0;
}
3.可以在循环里使用break;语句立即结束循环的执行。
一旦执行了break;语句则循环里的一切语句都不再执行,包括循环变量也不再变化。
如果循环采用break;语句结束,则结束后循环变量一定在指定数字范围之内。
如果编写循环的时候不知道循环要重复执行多少次,就可以编写一个死循环,然后用break;语句结束它。
4.可以在循环大括号里使用continue;语句,直接跳到大括号的末尾,中间的所有语句这次循环都不执行。
例子:
输出结果:1 11 2 12 3 4 14 15
5.无法预知的数字叫随机数
rand标准函数可以用来获得随机数。
为了使用这个标准函数需要包含stdlib.h头文件
例子:
输出结果:rand生成的随机数只能使用一次。
6.srand标准函数用来设置随机数种子。
这个函数需要一个整数作为种子使用。不同的种子得到的随机数不同。
为了使用这个标准函数也需要包含stdlib.h头文件
任何程序只需要设置一次随机数种子。
例子:
输出结果:每次运行的随机数还是一样
7.time标准可以用来获得当前的时间。
这个函数用一个整数表示获得的时间,同一秒之内获得的代表时间的整数不会变化。
为了使用这个标准函数需要包含time.h头文件
输出结果:每次运行程序出现的随机数都不一样。
练习:
利用死循环来解决
#include <stdio.h>
#include <stdlib.h>
#include<time.h>
int main() {
srand(time(0));
int num=0,num1=rand()%100;//rand每次生成的数都很大,直接除100求于余数就可以出现0~99之间的数,如果是0~100则是rand()%100+1;
for(;;){
printf("请输入一个0到99的数字:");
scanf("%d",&num);
if(num > num1)
{
printf("猜大了n");
}
else if(num < num1)
{
printf("猜小了n");
}
else if(num = num1)
{
printf("猜对了n");
break;
}
}
return 0;
}
分支和循环都是流程控制语句,它们都可以让程序里的语句不再从上到下顺序执行。
8.goto语句也是流程控制语句
它可以把程序中任何一条语句指定成下一条语句(尽量不要使用goto语句)
例子:
输出结果:
9.如果一个问题的解决问题中包含多组数字的变化过程,并且它们的变化过程互相关联就可以采用多重循环解决。
多重循环里外部循环的循环变量负责代表变化慢的数字,内部循环的循环变量负责变化快的数字。
练习:
#include <stdio.h>
int main() {
int num = 0, num1 = 0;
for(num = 0;num <= 2;num++ ){
for(num1 = 0;num1 <= 5;num1++){
if(5*num + 2*num1 <=10)
{
printf("5元钱有%d张,2元钱有%d张,1元钱有%dn",num,num1,10-5*num-2*num1);
}
}
}
return 0;
}
10.while关键字也可以用来编写循环
不容易用for关键字实现的循环,就可以考虑while关键字实现。
while循环格式如下:
while(逻辑表达式){
反复执行的语句
}
这个结构表示反复执行大括号里面的语句,直到逻辑表达式的结果为假。
例子:
输出结果:0 1 2 3 4 5
如果while循环的逻辑表达式永远为真,就成为了死循环。
while循环里也可以使用break;和continue;语句
例子:用while循环实现猜数字
#include <stdio.h>
#include <stdlib.h>
#include<time.h>
int main() {
srand(time(0));
int num=0,num1=rand()%100;//rand每次生成的数都很大,直接除100求于余数就可以出现0~99之间的数,如果是0~100则是rand()%100+1;
while(num != num1) {
printf("请输入一个0到99的数字:");
scanf("%d",&num);
if(num > num1)
{
printf("猜大了n");
}
else if(num < num1)
{
printf("猜小了n");
}
else if(num = num1)
{
printf("猜对了n");
break;
}
}
return 0;
}
while循环会交替执行逻辑表达式的计算和大括号里面的语句。
while循环第一步首先计算逻辑表达式的结果,如果这个时候逻辑表达式的结果为假就直接结束。
while循环有可能不执行大括号里面的语句。
11.do...while格式也可以用来编写循环
do...while循环格式如下
do{
反复执行的语句
}while(逻辑表达式);
do...while循环小括号后面必须用分号结束。
do...while循环也是交替执行逻辑表达式的计算和大括号里面的语句。
do...while循环首先执行大括号里面的语句。
do...while循环可以保证大括号里面的内容至少执行一次。
例子:
练习:
#include <stdio.h>
int main(){
int max=0,min=0,temp=0;
printf("请输入两个数字:");
scanf("%d%d",&max,&min);
while(max % min){
temp = max % min;
max = min;
min = temp;
}
printf("最大公约数是%dn",min);
return 0;
}
最后
以上就是受伤盼望为你收集整理的for循环、break和continue、二重循环的全部内容,希望文章能够帮你解决for循环、break和continue、二重循环所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复