首页 > 其他分享 >for循环、break和continue、二重循环

for循环、break和continue、二重循环

时间:2024-10-12 21:44:11浏览次数:5  
标签:语句 num continue int break while 循环 num1

for循环、break和continue、二重循环

循环语句

循环语句可以反复多次执行同一组语句,for关键字可以用来编写循环;可以在for循环里让一个变量依次代表一组数字,然后使用同一组语句处理这个变量代表的每个数字。这个变量叫做循环变量,按照统一的规律从第一个数字开始把每个数字都计算出来并让循环变量代表它,以下格式用来描述循环变量的变化过程。(把开始数字赋值给循环变量;用逻辑表达式描述循环变量和结束数字之间的关系;根据前一个数字计算后一个数字的规则)

for( ; ;){
    
}

如果一个问题的解决过程中包含一组数字的变化过程,每个数字的处理方法又类似就可以使用循环解决这个问题。

练习:编写程序在屏幕上显示以下内容;每次显示一行,for循环实现

1 x 9 =9
2 x 8 =16
3 x 7=21
4 x 6 =24
5 x 5 =25
点击查看代码
/*
 *
 *每次先是一行,屏幕上显示以下内容
 *
 *1x9=9
 *2x8=16
 *3x7=21
 *4x6=24
 *5x5=25
 *
 *
 * */
#include<stdio.h>
int main(){
	int num1 = 0,tmp =10;
	for(num1 = 1;num1 < 6;num1 ++){
			printf("%d x %d = %d\n ",num1,(tmp-num1),num1 * (tmp-num1));
		}
	return 0;
}

练习:编写程序从键盘得到两个整数;把他们之间所有的奇数的和计算出来并显示在屏幕上

点击查看代码
/*
 *
 * 求两个整数之间的所有奇数和显示在屏幕上
 *
 * */
#include<stdio.h>
int main(){
	int max = 0,min = 0,tmp = 0,num = 0,sum = 0;
	printf("请输入两个数字\n");
	scanf("%d%d",&min,&max);
	if (min >= max){
		tmp = min;
		min = max;
		max = tmp;
	}
	for (num = min;num <= max;num ++){
		if (num & 1){
			sum += num;
		}
	}
	printf("求和结果%d\n",sum);
	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(;;)

for循环里 小括号里前面和后面的部分可以是用逗号连接的多条语句,C99规范里允许在for循环的小括号里临时声明循环变量,这种循环变量只能在循环里使用就,循环结束后就不能用了(不支持使用)。

练习:鸡兔同笼;40个头,100只脚。编写程序计算兔子和鸡各有多少只

点击查看代码
/*
 *鸡兔同笼
 *头=40
 *脚=100
 *求各有多少只
 *
 * */
#include<stdio.h>
int main (){
	int num = 0;
	for (num = 0; num <=40;num ++){
		if (4 * num + 2 * (40-num) == 100){
			printf("兔子有%d只,鸡有%d\n",num ,40-num);
			break;
		}
	}
	printf("num = %d\n",num);
	return 0;
}

break语句

可以在循环里使用break;语句立即结束循环的执行,一旦执行了break语句,则循环里的一切语句都不再执行,包括循环变量也不再变化,如果循环采用break;语句结束则结束后循环变量一定在指定数字范围之内,如果编写循环的时候不知道循环要重复执行多少次就可以编写一个死循环然后用break;语句结束它。

continue语句

可以在循环大括号里使用continue;语句直接跳到大括号的末尾,中间的所有语句这次循环都不执行

随机数

无法预知的数字叫随机数;rand标准函数可以用来获得随机数,为了使用这个标准函数需要包含stdlib.h这个头文件,srand标准函数用来设置随机数种子,这个函数需要一个整数作为种子使用,不同的种子得到的随机数不同,为了使用这个标准函数需要包含stdlib.h头文件,任何程序只需要设置一次随机数种子,time标准函数可以用来获得当前时间,这个函数用一个整数表示获得的时间;同一秒之内获得的代表时间的整数不会变化。为了使用这个标准函数需要包含time.h头文件。

练习:编写猜数游戏

点击查看代码
/*
 *
 *
 *猜数游戏
 *
 *
 *
 * */
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main (){ 
	int num = 0,guess=0;
	srand(time(0));
	num = rand() % 100;
	while (1){
		printf("请输入猜测的数字\n");
		scanf("%d",&guess);
		if (guess > num){
			printf("大了\n");
		}
		else if (guess < num){
			printf("小了\n");
		}
		else {
			printf("对了\n");
			break;
		}
	}
	return 0;
}

程序首先获得一个0到99之间的随机数,然后让用户猜这个数字,每次猜完给出相应提示(猜大了.猜小了,猜对了),直到猜对程序结束

分支和循环都是流程控制语句,他们可以让程序里的语句不在从上到下顺序执行。

goto语句

goto语句也是流程控制语句,它可以把程序中任何一条语句指定成下一条语句,尽量不要使用goto语句。

练习:在屏幕上显示以下五行内容

54321

5432

543

54

5

每次只能显示一个个位数

点击查看代码
/*
 *
 *54321
 *5432
 *543
 *54 
 *5
 *每次显示一个个位数
 *
 * */
#include<stdio.h>
int main (){
	int num = 0,num1 = 0;
	for (num = 1;num <= 5;num ++){
		for (num1 = 5;num1 >= num;num1 --){
			printf("%d",num1);
		}
		printf("\n");
	}
	return 0;
}

多重循环

如果一个问题的解决过程中包含多组数字的变化过程并且他们的变化过程互相关联就可以采用多重循环解决,多重循环里外部循环的循环变量负责代表变化慢的数字,内部循环的循环变量负责代表变化快的数字。

练习:假设一种货币包含三种面值,分别是1元,2元,和5元
编写程序找到10元的所有可能的组合并都显示在屏幕上

点击查看代码
/*
 *
 *货币组合显示
 *
 *
 * */
#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元有%d张\n",num,num1,10 - 5 * num -2 *num1);
			}
		}
	}
	return 0;
}

while关键字

while关键字也可以用来编写循环,不容易用for关键字实现的循环就可以考虑用while关键字实现,while循环格式如下

while (逻辑表达式){
    反复执行的语句
}

这个结构表示反复执行大括号里面的语句直到逻辑表达式结果为假,如果while循环的逻辑表达式永远为真就成为了死循环,while循环里也可以使用break;和continue;语句;while循环会交替执行逻辑表达式的计算和大括号里面的语句,while循环第一步首先计算逻辑表达式的结果,如果这个时候逻辑表达式结果假就直接结束,while循环有可能不执行大括号里面的语句。

do...while

do...while格式也可以用来编写循环,do...while循环格式如下

do {
    反复执行的语句
} while (逻辑表达式);

do...while循环小括号后面必须要用分号结束,do...while循环也是交替执行逻辑表达式的计算和大括号里面的语句,do...while循环首先执行大括号里的语句,do...while循环可以保证大括号里里面的语句至少执行一次。

练习:编写程序从键盘得到两个非负整数;计算他们的最大公约数并把结果显示在屏幕上。

标签:语句,num,continue,int,break,while,循环,num1
From: https://www.cnblogs.com/GQH1000/p/18460245

相关文章

  • 用C/C++构建自己的Redis——第六章、事件循环和计时器
    用C/C++构建自己的Redis——第六章、事件循环和计时器文章目录用C/C++构建自己的Redis——第六章、事件循环和计时器前言一、超时和计时器二、链表三、事件循环四、链表排序4.1寻找最近的计时器4.2激活计时器4.3维护计时器五、测试总结前言这一章我们将一起学......
  • for/while循环与if条件语句
    1.if语句2.while循环3.for循环一.if1.单分支语法格式:if条件:           代码age=18ifage<18:print('666')print('888')8882.双向分支语法格式:if条件:            代码        e......
  • 信息学奥赛复赛复习16-CSP-J2022-01乘方-循环特判、pow函数、快速幂
    PDF文档公众号回复关键字:20241012此前解析题,P8813[CSP-J2022]乘方,给出了循环的解题思路,当时在洛谷提交是通过的,后台收到留言,a=1,b=1e9会炸吧?,确实啊整除要求1s内循环次数最大可以到10^7,现在测试数据明显大很多,按测试数据有这个可能,没想到CSP普及组第1题竟然翻车,去CCF官网......
  • 事件循环
    一、浏览器的进程模型浏览器是⼀个多进程多线程的应⽤程序,当启动浏览器后,它会⾃动启动多个进程其中,最主要的进程有:1.浏览器进程主要负责界⾯显示、⽤户交互、⼦进程管理等。浏览器进程内部会启动多个线程处理不同的任务。2.⽹络进程负责加载⽹络资源。⽹络进程......
  • Day14--Dowhile循环
    Day14--Dowhile循环对于while语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。do...while循环和while循环相似,不同的是:do...while循环至少会执行一次。do{//代码语句}while(布尔表达式);While和do-While的区别......
  • Day14--while循环
    Day14--while循环三种循环结构。while循环、do...while循环、for循环。在Java5中引入了一种主要用于数组的增强型for循环。while循环while是最基本的循环,它的结构为:while(布尔表达式){//循环内容}只要布尔表达式为true,循环就会一直执行下去。我们大多数情况......
  • 根据视频生成可以头尾衔接的循环视频
    最近手头有一个视频,基本上是一个部分重复循环的,我想把循环的一段提取出来造成动态壁纸,但怎奈何不会用pr,只能用ffmpeg配合pillow搞了……实现的关键在于找到可以首位相接的两帧画面,这就要求两个画面有极高的相似度。判断画面相似度首先需要对图像进行量化,一般有两种方案,一种......
  • 【C语言系列】分支语句和循环语句
    C语句可分为以下五类:1.表达式语句2.函数调用语句3.控制语句4.复合语句5.空语句控制语句用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句定义符组成,C语言有九种控制语句。可分成以下三类:1.条件判断语句也叫分支语句:if语句、switch语句;2.循环执......
  • 实验2_C语言分支与循环基础应用编程
    task1#include<stdio.h>#include<stdlib.h>#include<time.h>#defineN5#defineN1397#defineN2476#defineN321//随机摇学号intmain(){intcnt;intrandom_major,random_no;srand(time(NULL));//以当前系统时间作为随机种子......
  • 实验二 C语言分支与循环基础应用编程-1
    task1.c #include<stdio.h>#include<stdlib.h>#include<time.h>#defineN5#defineN1397#defineN2476#defineN321intmain(){intcnt;intrandom_major,random_no;srand(time(NULL));//以当前系统时间作为随机种子cnt=0;while(cnt<N){rando......