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 = ...
随机推荐
- 【SpringBoot】01 快速上手
环境搭建: JDK8 + IDEA 2018 + SpringBoot + Maven 3.0 + 创建Boot项目 2020.6.1更新补充: 最近才发现SpringBoot用IDEA构建项目会发生 ...
- 【Layui】09 动画 Anim
文档地址: https://www.layui.com/demo/anim.html 8种动画 <fieldset class="layui-elem-field layui-fiel ...
- 【转载】 使用t-SNE可视化图像embedding
原文地址: https://zhuanlan.zhihu.com/p/81400277 ================================================ t-SNE(t ...
- [COCI2015-2016#1] RELATIVNOST 题解
前言 题目链接:洛谷. 这道题有很多做法,但是模拟赛寄了,故记之. Update on 2024.7.23 修复了一处时间复杂度的笔误. 题意简述 给你两个长为 \(n\) 的序列 \(A\) 和 \ ...
- kubernetes负载感知调度
背景 kubernetes 的原生调度器只能通过资源请求来调度 pod,这很容易造成一系列负载不均的问题, 并且很多情况下业务方都是超额申请资源,因此在原生调度器时代我们针对业务的特性以及评估等级来设 ...
- disconf分布式配置管理(一) 安装与配置
一.背景 在生产部署过程中,遇到以下问题: 1.由于节点较多,每次增量修改配置文件后都需要每个节点替换配置文件. 2.有些动态配置修改后,需要重启服务. 二.解决方案 1.使用linux文件共享配置文 ...
- Git删除当前分支下的所有历史版本与log
- ios滚动列表白屏问题
移动端分页列表,在ios上滚动加载分页时候,使用scrollTop,会引起白屏问题. 看不少文章说是使用了-webkit-overflow-scrolling: touch;引起的硬件加速问题.亲测删 ...
- Dapr v1.14 版本已发布
Dapr是一套开源.可移植的事件驱动型运行时,允许开发人员轻松立足云端与边缘位置运行弹性.微服务.无状态以及有状态等应用程序类型.Dapr能够确保开发人员专注于编写业务逻辑,而不必分神于解决分布式系统 ...
- Go 必知必会:探索 Go 语言中的数组和切片深入理解顺序集合
文末有面经共享群 在 Go 语言的丰富数据类型中,数组和切片是处理有序数据集合的强大工具,它们允许开发者以连续的内存块来存储和管理相同类型的多个元素.无论是在处理大量数据时的性能优化,还是在实现算法时 ...