C语言6章循环结构
2015-11-02 16:00
423 查看
7.1.1 什么是重复执行
重担执行,意味着反反复复地执行一条语句,什么样的语句 呢?两种,一种是完全相同的语句,另一种是结构十分相似的语句 ,总之是一些可以转化成重复执行的操作。
有for,while,do-while
无论何种机制,一定满足3个通俗的条件之一或多个,有起点,有终点,有重复执行的语句。
三种循环都能实现循环,虽然各有千秋,但是功能可以完全相互替代,下面我们通过两个示例来分别比较3种循环的实现方式。
示例 1 编程获取用户输入的5个整数,然后输出5个整数中最小的整数。
实现的方法有多种,本小节只比较3种循环实现的方法。无论如何循环的次数最多5次,也就是说本循环的次数是确定的。
用for循环来实现:
while
do-while
结:
for 循环和while循环都是先判断,再执行循环体,而do-while是执行循环体再判断。while 与do-while循环的条件表达式只能放循环的终止条件,起始和步进条件分别放在循环的前面与循环的里面。
示例2 由用户输入 一串字符,编程判断字符串中字符‘a’出现的次数。
for
while
do-while
for 的3个表达式可以依据问题的需要任意省略和填充,因此它的书写方式也是最灵活的
重担执行,意味着反反复复地执行一条语句,什么样的语句 呢?两种,一种是完全相同的语句,另一种是结构十分相似的语句 ,总之是一些可以转化成重复执行的操作。
有for,while,do-while
无论何种机制,一定满足3个通俗的条件之一或多个,有起点,有终点,有重复执行的语句。
三种循环都能实现循环,虽然各有千秋,但是功能可以完全相互替代,下面我们通过两个示例来分别比较3种循环的实现方式。
示例 1 编程获取用户输入的5个整数,然后输出5个整数中最小的整数。
实现的方法有多种,本小节只比较3种循环实现的方法。无论如何循环的次数最多5次,也就是说本循环的次数是确定的。
用for循环来实现:
#include<stdio.h> int main(int argc,char* argv[]) { int num1,num2; scanf("%d",&sum1); for (int i=1;i<=4;i++) { scanf("%d",&num2); if (num1>num2) num1=num2; } printf("最小的数是%d",num1); return 0; }
while
#include<stdio.h> main() { int num1,num2; scanf("%d",&num1); int i =1; while(i<=4) { scanf('%d',&num2); if (num1>num2) num1=num2; i++; } printf("最小的数是"); return 0; }
do-while
#include <stdio.h> main() { int num1,num2; scanf("%d",&num1); int i=1; do { scanf("&d",&num2); if (num1>num2) num1=num2; i++; }while(i<=4) printf("最大的数是%d:"); return 0; }
结:
for 循环和while循环都是先判断,再执行循环体,而do-while是执行循环体再判断。while 与do-while循环的条件表达式只能放循环的终止条件,起始和步进条件分别放在循环的前面与循环的里面。
示例2 由用户输入 一串字符,编程判断字符串中字符‘a’出现的次数。
for
#include<stdio.h> main() { puts("input an string"); char c=getchar(); int coun_numm =0; for (;c!='\n';) { if (c=='a') count_num++; c=getchar(); } printf("字母a的数目是:%d",count_num); return 0; }
while
#include <stdio.h> main() { puts("inpuit a string"); char c=getchar)_; int count_num=0; while(c!='a') { if (c=='a') count_num++; c=getchar(); } printf("字母a的个数是%d",count_num); return 0; }
do-while
#include <stdio.h> main() { puts("input an string"); char c; int count_num =0; do { c = getchar (); if (c=='a') count_num++; }while(c!='\n') printf("字母a的个数是%d",count_num); return 0; }
for 的3个表达式可以依据问题的需要任意省略和填充,因此它的书写方式也是最灵活的
相关文章推荐
- 求最大子串和
- C++各种头文件及其函数
- 二叉搜索树的后序遍历序列
- c语言怎么会有这么多的作用域?
- MYSQL C++操作
- ——黑马程序员——C语言中的数组(三)
- (C++)关于拷贝构造函数 Copy Constructor
- C++ string 转化为LPCTSTR
- 深入C++的new
- C语言求最大公约数问题
- NYOJ 10 skiing
- [LeetCode]Bulls and Cows
- 关于多重继承和虚拟继承
- 栈的压入、弹出序列
- C++Primer第五版 练习12.7(解答)
- C++矩阵处理库--Eigen初步使用
- 黑马程序员———C语言 printf函数和scanf函数
- C++Primer第五版 练习12.6(解答)
- C++Primer第五版 12.1.2节练习
- C & C++的编译过程详解