回顾一下do while循环
关键字:do while
通用形式:
do
statement
while ( expression );
示例:
do
{scanf ("%d",&number);}
while ( number != 20 );
如何选择循环
首先要确定的是选择入口条件循环还是出口条件循环。通常入口条件循环用的比较多,有几个原因。
一般在执行循环之前测试条件比较好。
测试放在程序的开头,程序不可读性较高
在很多应用中,要求在一开始不满足测试条件时就直接跳过整个循环。
那么如果需要加入一个入口条件循环,该用哪一个?答案是随便用那个。
一般而言当循环涉及到初始化和更新变量时用for循环比较合适,其他情况下用while循环更好。对于下面这种条件,使用while循环就很合适:
while( scanf ("%ld", &num) == 1))
对应涉及索引计数的循环,用for循环更合适:
for( count = 1; count <= 100; count++)
嵌套循环
嵌套循环只在一个循环内包含另一个循环。嵌套循环常用于按行和列显示数据,也就是说,一个循环处理一行中的所有列,另一个循环处理一行中的所有行。小编推荐一个学C语言/C++的学习裙【 六二七,零一二,四六四 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
[cpp]view plaincopy
/*rows1.c -- 使用循环嵌套*/
#include
#define ROWS 6
#define CHARS 10
int main (void)
{
int rows;
char ch;
for(rows = 0; rows < ROWS; rows++)
{
for(ch = 'A'; ch < 'A'+10; ch++)
{
printf("%c", ch);
}
printf("\n");
}
return 0;
}
结果会是这样:
ABCDEFGHIJ
ABCDEFGHIJ
ABCDEFGHIJ
ABCDEFGHIJ
ABCDEFGHIJ
ABCDEFGHIJ
程序中的第一个for循环被称为外层循环,第二个for循环自然叫内层循环。只要知道内层循环在每次外层循环迭代是都执行完所有循环。
上一个程序中两个循环都坐立同样的事情,还可以通过外层循环控制内层循环,每次完成不同的任务。
[cpp]view plaincopy
/*rows2.c -- 使用循环嵌套*/
#include
#define ROWS 10
#define CHARS 10
int main (void)
{
int rows;
char ch;
for(rows = 0; rows < ROWS; rows++)
{
for(ch = ('A' + rows); ch < ('A'+ CHARS); ch++)
{
printf("%c", ch);
}
printf("\n");
}
return 0;
}
结果会是这样:
ABCDEFGHIJ
BCDEFGHIJ
CDEFGHIJ
DEFGHIJ
EFGHIJ
FGHIJ
GHIJ
HIJ
IJ
J
因为每次迭代都把rows的值与‘A’相加,所以变量ch每一次都会被赋予不同的值,理清顺序就能理解其中的原理。
数组简介
在许多程序中,数字很重要。数组可以作为一种储存多个相关项的便利方式。书本在后面的章节中会有详细的讲解,这里说到底只是简介,因为后面的程序会遇到一些数组,事先了解一下。
数组(array)是按顺序储存一系列类型相同的值,如10个char类型的字符或15个int类型的值或者其他的类型都可以。
float debts [ 20 ] ;
这个声明说明了在这是个名叫debts的float类型的数组,含有20个元素,依次储存在内存中的相邻位置。其中第一个元素是debts [ 0 ] 然后以此类推到 debts [ 19 ],虽然声明的时候是20,但这是从0开始的,一直到19。小编推荐一个学C语言/C++的学习裙【 六二七,零一二,四六四 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
可以给数组元素赋值,就像这样:debts[5] = 12.34 ; 但是假如把方括号中的下标值输错了,比如debts[55] = 12.34;编译器不会检查下标是否正确,但当运行程序的时候,这会导致数据被放在已经被其他数据占用的地方,可能会破坏程序结果或者直接异常中断。还有一点,下标必须是整数。