c语言中一共有三个循环,分别如下:
while ; do{}while(); for( ; ; );
while循环的使用方式,我们写一个显示平方表的方法应用一下
cpp
#include<stdio.h>
int main()
{
int i = 0, n = 0;
printf("Enter number of entries in table: ");
scanf("%d",&n);
i = 1;
while(i <= n)
{
printf("%10d => %10d\n",i,i*i);
++i;
}
printf("\n");
return 0;
}
在有循环语句的程序中,通常循环开始前对循环条件进行初始化;而在循环体语句中要包
含修改循环条件的语句,否则循环将不能终止而陷入死循环
我们再看一个例子:对用户输入的整型数列求和
cpp
#include<stdio.h>
int main()
{
int n = 0,sum = 0;
printf("Enter intergers ( 0 to terminate): ");
scanf("%d",&n);
while(n != 0)
{
sum += n;
scanf("%d",&n);
}
printf("The sum is: %d \n",sum);
return 0;
}
while循环和do ...while循环的区别在于,前者需要先判断,满足条件后才能进入循环,后者直接先运行一边循环体,再判断看是否继续执行循环体。也就是说do while循环至少执行一遍
do语句本质上就是while语句,只不过其控制表达式是在每次执行完循环体之后再进行判断
示例1:计算输入整型数值的位数
cpp
#include<stdio.h>
int main()
{
int digits = 0,n;
printf("Enter a nonnegative integer: ");
scanf("%d",&n);
do
{
n /= 10; //n = n/10;
digits++;
}while(n > 0);
printf("The Number has %d digit \n",digits);
return 0;
}
对于"向上加"(变量自增) 或 "向下减"(变量自减) 的循环来说,for 语句通常是最好的选择。
for循环的常用方法如下:
cpp
// 从0向上加到n-1
for(i = 0; i < n; ++i) ...
// 从1向上加到n
for(i = 1; i <= n; ++i) ...
// 从n-1向下减到0
for(i = n-1; i >= 0; --i) ...
//从n 向下减到1
for(i = n; i > 0; --i) ...
// 编写的控制表达式中把 i < n 写成 i <= n , 会犯"循环次数差一次" 错误
在使用for循环的时候可以在循环条件中省略表达式
for 循环中的"表达式1(初始化条件)"、"表达式2(循环条件)"和"表达式3(自增或自减)"都
是可选项,都可以省略(但分号';' 必须保留)
cpp
int main()
{
const int n = 10;
int sum = 0;
int i = 1;
for(i = 1;i <= n;++i) //1 常规写法
{
sum = sum + i;
}
printf("sum : %d \n",sum);
sum = 0;
i = 1;
for(; i <= n;++i) //2 省略表达式1, i= 1;
{
sum = sum + i;
}
printf("sum : %d \n",sum);
sum = 0;
i = 1;
for(; i<=n;) //3 省略表达式1和表达式2, i= 1; ++i;
{
sum = sum + i;
++i;
}
printf("sum : %d \n",sum);
sum = 0;
i = 1;
for(;;) //4 省略表达式1,表达式2和表达式3,
{
if(i > n) break; // 先判断,后执行
sum = sum + i;
++i;
}
sum = 0;
i = 1;
for(;;) //4
{
sum = sum + i;
++i;
if(i > n) break; // 后判断, 先执行
}
// 5 将循环语句写入表达式3中,注意使用,逗号分隔,不能使用分号';'分割。
for(sum = 0, i = 1, i<= n; sum = sum+i,++i);
printf("sum : %d \n",sum);
如何写无限循环?
cpp
while(1) { }
for( ; ; ) { }
以上就是c语言三大循环的使用以及示例