4.循环语句(while、do-while、for)
1)while
While语句格式如下:
While(条件)
{语句};
首先计算由条件给出的表达式的值,如果表达式的值非0,则执行循环体的语句,否则退出循环:
以1-100之间的数依次相加来举个例子:
#include <stdio.h>
int main()
{
int i=0,sun=0;
while (i<=100)
{sun+=i;
i++;}
printf("%d\n",sun);
etchar(); getchar(); getchar();
}
结果为:
2)do-while
格式如下:
Do{语句};
While{条件语句};
首先执行一次循环语句,再计算条件所指定的表达式的值,如果表达式的值非0,继续执行循环,否则退出循环体。
依旧拿1-100之间的数依次相加来举例子:
#include <stdio.h>
int main()
{
int i=0,sun=0;
do
{sun+=i;
i++;
}
while (i<=100);//这里while关键字(条件)后要加分号
printf("%d\n",sun);
getchar(); getchar(); getchar();
}
结果如下:
3)for
格式如下:
For{(表达式1);(表达式2);(表达式3)}
(语句);
先计算表达式1的值,在计算表达式2的值,然后进行判断如果表达式2的值为0,则退出循环语句,如果表达式2的值为非0,则执行循环体的语句,在计算表达式3的值,然后再计算表达式2的值来判断。
(任意的for语句均可用while语句来代替,反之亦然)
For循环特点:
1) 一直循环次数时,使用方便,但循环次数不定时,使用不便。
2) 循环语句格式灵活,其中表达式可移出,但括号内的分号要保留。
5.转向语句(goto、break、continue、return)
1)goto语句:无条件转向语句。
格式如下:
Goto(语句标号);
Goto是关键字,语句表号是用来标识一条语句的,指明goto语句所要转到的语句。语句标号出现在语句前面,用冒号与语句分开。格式如下:
语句标号:语句
一条语句可以有多个语句标号,但语句标号要求在一个函数体内是、唯一的。
举个例子:
用goto语句和if语句计算1-100的自然数之和
#include <stdio.h>
int main()
{
int i=0,sun=0;
loop: if(i<=100)
{
sun+=i++;
goto loop;
}
printf("%d\n",sun);
getchar(); getchar(); getchar();
}
结果如下:
2) break语句:(两个功能:1、在switch语句中遇到break退出switch循环,执行其后面的语句2、在循环体中遇到break,退出该重循环。)
举个例子:
#include <stdio.h>
int main()
{
int i=1;
do{
i++;
printf("%d\n", ++i);
if(i==7)
break;
}
while(i==3);
printf("ok!\n");
getchar(); getchar(); getchar();
}
结果如下:
3) continue语句:(只用在循环体中,执行该语句结束本次循环,再去判断是否继续下次循环。)
举个例子:
要求输出1-100之间的能被19整除的自然数
#include <stdio.h>
int main()
{
int i=1;
for(i=1;i<=100;i++)
{
if(i%19!=0)
continue;
printf("%4d\n",i);
}
getchar(); getchar(); getchar();
}
结果如下:
4) return:(返回语句)
格式如下:
分为 return(不带返回值格式)和return{表达式}(带返回值格式)两种。
该语句用在被调用函数中,遇到return,结束对被调用函数的执行,并把控制权返还给调用函数,继续执行调用函数后边的语句。(在带有返回值函数的时候,将return语句所带的表达式的返回值返还给调用函数,作为调用函数的值。)