黑马程序员_C语言基础_循环结构使用区别,9*9口诀表
2015-07-21 12:28
295 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
程序的循环结构主要分为三种形式:while,do……while,for语句三种的使用各不相同,要想更好的掌握好他们各自的使用,需要找出他们使用技巧。
1.while循环
格式:while(循环条件)
{
循环语句;
}
语义:先判断条件,当满足条件则进行下面的循环,若不符合则跳出循环。
简单实例:计算从1+2+3+……+n的值。
1.while(-1),while(1)都是死循环;
2.当一个变量与一个常量进行==或!=时,通常把常量写在前面,如int a=3;while(2==a){};
3.while后如果只有一条语句,可以省略大括号;
4.作用域紊乱:内部代码定义的变量在外部不可以访问。
2、do……while循环
格式:do
{
……循环语句;
}while(循环条件)
语义:先进行循环,在判断条件。当条件满足循环条件时继续执行循环语句,若不满足,则不在执行。
简单实例:计算从1+2+3+……+n的值。
注意:while循环与do……while循环的不同之处:
1.当循环条件第一次为真时,执行次数是一样的;
2.当循环条件第一次为假时,while循环执行0次,do……while循环执行1次。
3、for循环
格式:for(表达式1;表达式2;表达式3){
循环语句;
}
for循环的三要素:控制条件,循环体,能够控制条件为假的操作。
最常用的是for循环的嵌套,打印输出图形。
打印正三角形,倒三角,正三角代码如下:
还有经典的一个是打印9*9乘法口诀表,实现思想是一列一列的打印输出,因为每一列的第一个乘数都是相同的。
总结:在进行循环的时候,还要结合break与continue使用。
break多用在switch语句,是跳出当前循环,结束当前循环,break之后的语句不在执行。
if(表达式)else{ ...... break;......}
1)break语句对if-else的条件语句不起作用;
2)在多层循环中,一个break语句只向外跳一层。
continue是结束本次循环,还可以继续下次的循环。continue语句只用在 for、while、do-while等循环体中,常与if条件语句一起使用,用来加速循环。
这两点的使用应该多多体会。
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
程序的循环结构主要分为三种形式:while,do……while,for语句三种的使用各不相同,要想更好的掌握好他们各自的使用,需要找出他们使用技巧。
1.while循环
格式:while(循环条件)
{
循环语句;
}
语义:先判断条件,当满足条件则进行下面的循环,若不符合则跳出循环。
简单实例:计算从1+2+3+……+n的值。
int main(int argc,const char *argv[]) { //定义变量 int i = 0, s = 0; //用来接收计算的个数,到n结束 int n; scanf("%d", &n); //循环计算从1到n的和 while (i <= n) { s = s + i; i++; } printf("%d", s); return 0; }while循环需要注意的:
1.while(-1),while(1)都是死循环;
2.当一个变量与一个常量进行==或!=时,通常把常量写在前面,如int a=3;while(2==a){};
3.while后如果只有一条语句,可以省略大括号;
4.作用域紊乱:内部代码定义的变量在外部不可以访问。
2、do……while循环
格式:do
{
……循环语句;
}while(循环条件)
语义:先进行循环,在判断条件。当条件满足循环条件时继续执行循环语句,若不满足,则不在执行。
简单实例:计算从1+2+3+……+n的值。
int main(int argc,const char *argv[]) { //定义变量 int i = 0, s = 0; //用来接收计算的个数,到n结束 int n; scanf("%d", &n); //循环计算从1到n的和 do{ s = s + i; i++; } while (i <= n); printf("%d", s); return 0; }
注意:while循环与do……while循环的不同之处:
1.当循环条件第一次为真时,执行次数是一样的;
2.当循环条件第一次为假时,while循环执行0次,do……while循环执行1次。
3、for循环
格式:for(表达式1;表达式2;表达式3){
循环语句;
}
for循环的三要素:控制条件,循环体,能够控制条件为假的操作。
最常用的是for循环的嵌套,打印输出图形。
打印正三角形,倒三角,正三角代码如下:
int main(int argc,const char *argv[]) { //打印正三角 for (int i = 0; i < 5; i++){ for (int j = 0; j <=i; j++)//第x行打印x个 { printf("*"); } printf("\n"); } //打印倒三角5行5列 for (int i = 4; i >= 0; i--){ for (int j = 0; j <=i; j++) { printf("*"); } printf("\n"); } //打印倒三角5行5列 for (int i = 0; i <= 4; i++){ for (int j = 0; j <=4-i; j++)//第x行打印x个 { printf("*"); } printf("\n"); } for (int i = 0; i <5; i++){ for (int j = 0; j <5 - i; j++)//第x行打印x个 { printf("*"); } printf("\n"); } //打印正三角5行5列 //控制行数 for (int i = 1; i <= 5; i++){ for (int j = 0; j < 5 - i; j++)//控制空白 { printf(" "); } //控制* for (int k = 0; k < 2 * i - 1; k++)//控制空白 { printf("*"); } printf("\n");//打印回车 } return 0; }总结:第一个for循环控制的是行数,第二个for循环控制的列数,用的是for循环嵌套。
还有经典的一个是打印9*9乘法口诀表,实现思想是一列一列的打印输出,因为每一列的第一个乘数都是相同的。
int main(int argc,const char *argv[]) { //9 * 9乘法表 //控制行数 for (int i = 1; i <= 9; i++){ //控制列数 for (int j = 1; j <= i; j++) { printf("%d*%d=%d ", j, i, j*i);//先输出列 } printf("\n"); } return 0; }
总结:在进行循环的时候,还要结合break与continue使用。
break多用在switch语句,是跳出当前循环,结束当前循环,break之后的语句不在执行。
if(表达式)else{ ...... break;......}
1)break语句对if-else的条件语句不起作用;
2)在多层循环中,一个break语句只向外跳一层。
continue是结束本次循环,还可以继续下次的循环。continue语句只用在 for、while、do-while等循环体中,常与if条件语句一起使用,用来加速循环。
这两点的使用应该多多体会。
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
相关文章推荐
- C语言实现BMP转换JPG的方法
- Java程序员学习C++之字符串
- C++ STL中Map的按Key排序和按Value排序
- C语言概述
- c++ 计蒜客挑战难题第10题寻找插入位置 二分查找
- C++设计模式 之 原型模式
- C++中, 构造函数和析构函数能不能被显示调用?
- 如何在windows下用C++创建目录
- c/c++ 基金会(七) 功能覆盖,虚函数,纯虚函数控制
- C语言小程序源码
- Online Judge System For SzNOI 题库 语法百题 c++ d010
- C语言编程对缓冲区的理解
- Online Judge System For SzNOI 题库 语法百题 C++ d009
- c++学习笔记(2)类的声名与实现的分离及内联函数
- Online Judge System For SzNOI 题库 语法百题 C++ d008
- Online Judge System For SzNOI 题库 语法百题 C++ d007
- 判断字符串是否为回文数(c++ 顺序栈)
- Online Judge System For SzNOI 题库 语法百题 C++ d006
- 【C++】文件的读取与写入
- CString、string、char*之间的区别和转换