C语言中if,while, do-while和for循环用法
if 循环
if(条件成立){
…;
}
else
{
条件不成立;
}
一个基本的if语句由一个关键字if开头,跟上在括号里的一个表示条件的逻辑表达式,然后是一对大括号“{}”之间的若干条语句。如果表示条件的逻辑表达式的结果不是零,那么就执行后面跟着的这对大括号中的语句,否则就跳过这些语句不执行,而继续下面的语句。
if语句这一行结束的时候并没有表示语句结束的“;”,而后面的赋值语句写在if的下一行,并且缩进了,在这一行结束的时候有一个表示语句结束的“;”。这表明这条赋值语句是if语句的一部分,if语句拥有和控制这条赋值语句,决定它是否要被执行。
while循环:
while(条件满足){
…//循环
}
eg:判断一个数是几位?
1
2
3
4
5
6
7
8
9
10
11
12
13
14#include<stdio.h> int main() { int count=1; int a; scanf("%d",&a); while(a/10){ count++; a=a/10;// a/=10; } printf("%dn",count); return 0; }
或者如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14#include<stdio.h> int main() { int count=0; int a; scanf("%d",&a); while(a){ //a>0 count++; a=a/10;// a/=10; } printf("%dn",count); return 0; }
do-while 循环:
在进入循环的时候不做检查,而是在执行完一轮循环体的代码之后,再来检查循环的条件是否满足,如果满足则继续下一轮循环,不满足则结束循环
do
{
<循环体语句>
}while(<循环条件>);
eg:判断一个数是几位?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15#include<stdio.h> int main() { int a; int count=0; scanf("%d",&a); do { count++; a/=10; } while(a) ; printf("%dn",count); return 0; }
for 循环:
for(count=10;count>0;count–)
就读成:对于一开始的count=10,当count>0时,重复做循环体,每一轮循环在做完循环体内语句后,使得count–。
求n!
1
2
3
4
5
6
7
8
9
10
11
12
13
14#include<stdio.h> int main() { int n; int sum=1; scanf("%d",&n); for(int i=0;i<n;i++) { sum=sum*(i+1); } printf("%dn",sum); return 0; }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16#include<stdio.h> int main() { int n; int sum=1; int i=1; scanf("%d",&n); do { sum=sum*i; i++; } while(i<=n) ; printf("%dn",sum); return 0; }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16#include<stdio.h> int main() { int n; int sum=1; int i=1; scanf("%d",&n); while(i<=n) { sum=sum*i; i++; } printf("%dn",sum); return 0; }
for(i=0;i<n;i++)
则循环的次数是n,而循环结束以后,i的值是n。循环的控制变量i,是选择从0开始还是从I开始,是判断i<n还是判断i<=n,对循环的次数,循环结束后变量的值都有影响。for中每一个表达式都是可以省略的
for(;判断;)=while(判断)
for==while
for(int i=0;i<=n;i++)
{
fact*=i;
}
等价于======
int i=1;
while(i<=n){
fact*=i;
i++;
}
如何选择 循环:
如果有固定的次数,用for
如果必须执行一次,用do-whlie
其他情况用while
break:跳出循环
continue:跳出循环
goto: 从嵌套的循环中跳出,goto out
eg:判断一个数是不是质数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19#include<stdio.h> int main() { int n; int isprime=1; scanf("%d",&n); for(int i=2;i<n;i++) { if(n%i==0) isprime=0; break; } if(isprime==0) printf("不是质数"); else printf("是质数"); return 0; }
eg:输出n以内的素数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25#include<stdio.h> int main() { int n; scanf("%d",&n); for(int j=2;j<=n;j++) { int isprime=1; for(int i=2;i<j;i++) { if(j%i==0) isprime=0; break; } if(isprime==1) { printf("%d ",j); } } return 0; }
//如何用1角,2角和5角的硬币凑出10元以下的金额呢
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19#include<stdio.h> int main() { int n; scanf("%d",&n); for(int i=1;i<n*10;i++) { for(int j=1;j<n*10/2;j++) { for(int k=1;k<n*10/5;k++) { if(i+j*2+k*5==n*10) printf("可以用%d个一角和%d个2角和%d个5角得到%d元钱n",i,j,k,n); } } } return 0; }
goto从嵌套循环中跳出
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22#include<stdio.h> int main() { int n; scanf("%d",&n); for(int i=1;i<n*10;i++) { for(int j=1;j<n*10/2;j++) { for(int k=1;k<n*10/5;k++) { if(i+j*2+k*5==n*10) printf("可以用%d个一角和%d个2角和%d个5角得到%d元钱n", i,j,k,n); goto out; } } } out: return 0; }
最后
以上就是朴实悟空最近收集整理的关于C语言中if,while, do-while和for循环用法的全部内容,更多相关C语言中if,while,内容请搜索靠谱客的其他文章。
发表评论 取消回复