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循环可以保证大括号里里面的语句至少执行一次。
练习:编写程序从键盘得到两个非负整数;计算他们的最大公约数并把结果显示在屏幕上。
for循环、break和continue、二重循环的更多相关文章
- 自学Linux Shell12.7-控制循环break、continue命令
点击返回 自学Linux命令行与Shell脚本之路 12.7-控制循环break.continue命令 break命令.break命令用于跳出循环,使用break可以跳出任何类型的循环:for.whi ...
- python笔记五(条件判断/循环/break和continue)
一 条件判断 if <条件判断1>: <执行1> elif <条件判断2>: <执行2> elif <条件判断3>: <执行3> ...
- break 和continue在循环中起到的作用
break语句的作用是终止当前循环,跳出循环体.主意,break只能跳出一层循环. continue语句的作用是终止本轮循环并开始下一轮循环,(这里要主意的是在开始下一轮循环之前,会先测试循环条件). ...
- javaScript如何跳出多重循环break、continue
先来说说break和continue之间的区别 for(var i=0;i<10;i++){ if(i>5){ break; }}console.log(i); ---6 •当i ...
- break、continue多层循环处理
使用break xxx跳出多层循环的代码如下: for(String s: arr){ labelA: for(String ss: arr) { for(String sss: arr) { Sys ...
- 跳出for循环break和continue的区别
1.break 跳出for循环,结束for循环 如果有两层循环,break只能跳出一层循环 2.continue 跳出本次循环,继续下一条数据的循环
- while循环,break和continue,运算符,格式化输出
一丶while循环 while条件: 代码块(循环体) #数数 打印1-100 count = 1 while count <= 100: print(count) count += 1 执行顺 ...
- day05生成随机数、do-while循环、for循环、循环流控(break和continue)、循环嵌套
复习 1.多重if 一个条件触发的情况在3种或以上时 if(<条件1>){ //条件1为真时运行 }else if(<条件2>){ //条件1为假,条件2为真时运行 }else ...
- C#循环 — break VS continue
一.简介 1.break语句:循环-循环中断并停止,退出当前循环: 流程图: 2.continue:循环-循环下一次迭代继续执行. 流程图: 执行过程:立即结果本次循环,判断循环条件,如果成立,则进入 ...
- Python循环-break和continue
break用于完全结束一个循环,跳出循环体,执行循环后面的语句 # -*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" count = ...
随机推荐
- 【Layui】09 动画 Anim
文档地址: https://www.layui.com/demo/anim.html 8种动画 <fieldset class="layui-elem-field layui-fiel ...
- 《Python数据可视化之matplotlib实践》 源码 第四篇 扩展 第十三章
图 13.10 import matplotlib.pyplot as plt import matplotlib as mpl import numpy as np mpl.rcParams[&q ...
- Python报错:pkg-config could not find libraries ['avformat', 'avcodec', 'avdevice', 'avutil', 'avfilter', 'swscale', 'swresample']
参考: https://github.com/PyAV-Org/PyAV/issues/238 https://pyav.org/docs/6.1.2/installation.html#mac-os ...
- 介绍一款新奇的开源操作系统:GodoOS
在快节奏的现代办公环境中,一款高效.集成化的操作系统无疑是提升工作效率的利器.今天,我们要为您隆重介绍 --GodoOS,一款专为内网办公环境设计的全能操作系统.它不仅仅是一个工具,更是您团队协作与文 ...
- Linux/Go环境搭建, HelloWorld运行
package main import "fmt" func main() { fmt.Printf("Hello,World!!!\n") } 以上是Go语言 ...
- union在重构代码中的使用技巧
http://blog.chinaunix.net/uid-23629988-id-158156.html 在产品的开发过程中,无论是代码的重构,还是添加新的功能时,都不可避免的有对现有结构体的修改, ...
- 使用 preloadComponents 进行组件预加载
title: 使用 preloadComponents 进行组件预加载 date: 2024/8/18 updated: 2024/8/18 author: cmdragon excerpt: 摘要: ...
- linux下开发编辑器vim常用指令
1.vim的3种模式:编辑模式.插入模式.命令行模式(最后一行模式) 编辑模式:对代码的修改(复制.粘贴.剪切 插入模式:用户编辑代码等等) 命令行模式:保存 退出 另存为等 vim3种模式的切换 最 ...
- 记录_玩客云v1.0大坑!!!
刷机 短接后刷入uboot固件, 制作U盘镜像启动会出现莫名其妙的内存写入失败!!!!!!!!!!! 但是这并没坏 拆机 , 短接刷armbian v5.67 内核 3.10, 这个版本刷完后什么特 ...
- Redis实战11-实现优惠券秒杀下单
本篇,咱们来实现优惠券秒杀下单功能.通过本篇学习,我们将会有如下收获: 1:优惠券领券业务逻辑: 2:分析在高并发情况下,出现超卖问题产生的原因: 3:解决超卖问题两种方案:版本号法及CAS法 4:乐 ...