循环语句

循环语句可以反复多次执行同一组语句,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、二重循环的更多相关文章

  1. 自学Linux Shell12.7-控制循环break、continue命令

    点击返回 自学Linux命令行与Shell脚本之路 12.7-控制循环break.continue命令 break命令.break命令用于跳出循环,使用break可以跳出任何类型的循环:for.whi ...

  2. python笔记五(条件判断/循环/break和continue)

    一 条件判断 if <条件判断1>: <执行1> elif <条件判断2>: <执行2> elif <条件判断3>: <执行3> ...

  3. break 和continue在循环中起到的作用

    break语句的作用是终止当前循环,跳出循环体.主意,break只能跳出一层循环. continue语句的作用是终止本轮循环并开始下一轮循环,(这里要主意的是在开始下一轮循环之前,会先测试循环条件). ...

  4. javaScript如何跳出多重循环break、continue

    先来说说break和continue之间的区别 for(var i=0;i<10;i++){  if(i>5){  break;  }}console.log(i);  ---6  •当i ...

  5. break、continue多层循环处理

    使用break xxx跳出多层循环的代码如下: for(String s: arr){ labelA: for(String ss: arr) { for(String sss: arr) { Sys ...

  6. 跳出for循环break和continue的区别

    1.break 跳出for循环,结束for循环 如果有两层循环,break只能跳出一层循环 2.continue 跳出本次循环,继续下一条数据的循环

  7. while循环,break和continue,运算符,格式化输出

    一丶while循环 while条件: 代码块(循环体) #数数 打印1-100 count = 1 while count <= 100: print(count) count += 1 执行顺 ...

  8. day05生成随机数、do-while循环、for循环、循环流控(break和continue)、循环嵌套

    复习 1.多重if 一个条件触发的情况在3种或以上时 if(<条件1>){ //条件1为真时运行 }else if(<条件2>){ //条件1为假,条件2为真时运行 }else ...

  9. C#循环 — break VS continue

    一.简介 1.break语句:循环-循环中断并停止,退出当前循环: 流程图: 2.continue:循环-循环下一次迭代继续执行. 流程图: 执行过程:立即结果本次循环,判断循环条件,如果成立,则进入 ...

  10. Python循环-break和continue

    break用于完全结束一个循环,跳出循环体,执行循环后面的语句 # -*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" count = ...

随机推荐

  1. Arm V8 - ADRP指令

    ADRP指令 作用 将当前指令所在页的基地址加/减去字节差,并写入目标寄存器 字节差:与目标地址页基地址的间隔字节数,其为PAGE_SIZE的整数倍 此时的字节差就是指令所操作的立即数 该指令通常配合 ...

  2. Cython将Numpy数组转为自定义结构体

    技术背景 前面我们写过几篇关于Cython的文章,例如Cython计算谐振势.Cython与C语言的结合.Cython调用CUDA Kernel函数.Cython有着非常Pythonic的编程范式,又 ...

  3. WhaleStudio 2.6重磅发布!调度模块WhaleScheduler更新78项核心功能

    我们很高兴地宣布WhaleStudio 2.6版本的正式发布!新版本中包含了数据调度模块WhaleScheduler和数据集成模块WhaleTunnel的百余项核心功能更新,本文摘选了WhaleSch ...

  4. Apache DolphinScheduler 社区 3 月月报

    各位热爱 DolphinScheduler 的小伙伴们,DolphinScheduler 社区月报开始更新啦!这里将记录 DolphinScheduler 社区每月的重要更新. 社区为 Dolphin ...

  5. JavaScript设计模式样例五 —— 建造者模式

    建造者模式(Builder Pattern) 定义:使用多个简单的对象一步一步构建成一个复杂的对象. 目的:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示. 场景:一些基本部件不 ...

  6. 虚拟机中创建的centos网络ping不通 - ping unkown host

    一.查看虚拟机设置 二.su 进入超级管理员账户  ls /etc/sysconfig/network-scripts 查看虚拟机网络信息 第一个,每一个机器的配置文件名不同 进入到  network ...

  7. Winform 子窗体调用父窗体方法

    子窗体部分 1.定义委托 /// <summary> /// 双击委托事件 /// </summary> /// <param name="path" ...

  8. 【图文安装教程】在docker中安装kibana

    在上一篇中,我们已经在docker里面安装了ES. kibana可以给我们提供一个elasticsearch的可视化界面,便于我们学习. 所以,本篇咱们就在docker里面安装kibana图文教程: ...

  9. 5个必知的高级SQL函数

    5个必知的高级SQL函数 SQL是关系数据库管理的标准语言,用于与数据库通信.它广泛用于存储.检索和操作数据库中存储的数据.SQL不区分大小写.用户可以访问存储在关系数据库管理系统中的数据.SQL允许 ...

  10. 省钱的开源项目「GitHub 热点速览」

    本期,我从上周的热门开源项目中挑选了 5 个既省钱又省事,还好玩的开源项目. 首先,推荐的是省钱的电动汽车智能充电管理平台 evcc,它可以根据分时电价智能安排电动车充电时间,从而降低电费,如果你家还 ...