if 语句
格式:
代码语言:javascript复制// 1
// 其他语句...
if(表达式){
// 其他语句...
}
// 其他语句...
// 2
if(表达式){
}else{
}
// 3
if(表达式1){
}else if(表达式2){
}else if(表达式3){
}else{
}
// 4
if(表达式1){
}else if(表达式2){
}else if(表达式3){
}
代码语言:javascript复制#include<stdio.h>
int main(){
int i;
printf("请输入分数:");
scanf("%d",&i);
if(i >= 90 ){
printf("A");
}else if(i < 90 && i >= 80){
printf("B");
}else if(i < 80 && i >= 70){
printf("C");
}else if(i < 70 && i >= 60){
printf("D");
}else{
printf("E");
}
return 0;
}
switch
格式:
代码语言:javascript复制switch(表达式){
case 常量表达式1: 语句或程序块1
case 常量表达式2: 语句或程序块2
....
case 常量表达式n: 语句或程序块n
default: 语句或程序块n 1
}
代码语言:javascript复制#include<stdio.h>
int main(){
char c;
printf("请输入成绩等级:");
scanf("%c",&c);
switch(c){
case 'A':
printf("成绩合格在90分以上!n");
break;
case 'B':
printf("成绩合格在80-90分!n");
break;
case 'C':
printf("成绩合格在70-80分!n");
break;
case 'D':
printf("成绩合格在60-70分!n");
break;
default:
printf("成绩无效,请重新输入!");
break;
}
return 0;
}
当 switch 里的 case 中忽略了
break
,会一直往下执行,直到遇到break
为止。当未匹配到 case,会执行switch中的default
分支。
while
格式:
代码语言:javascript复制while(表达式){
循环体
}
代码语言:javascript复制#include<stdio.h>
int main(){
int i= 0;
printf("请输入字符:n");
while( getchar() != 'n'){
i= i 1;
}
printf("你输入了%d个字符n",i);
return 0;
}
do while
格式:
代码语言:javascript复制do{
// 循环体
}while();
for
格式:
代码语言:javascript复制for(表达式1;表达式2;表达式3){
// 循环体
}
- 表达式 1:循环初始化表达式
- 表达式 2:循环条件表达式
- 表达式 3:循环调整表达式
C99 新标准
C99 允许在 for 语句的表达式 1 中定义变量。
代码语言:javascript复制#include<stdio.h>
int main(){
for(int i = 5; i < 10; i ){
printf("i:%dn",i);
}
return 0;
}
代码语言:javascript复制$ gcc test.c && ./a.out
test.c: In function ‘main’:
test.c:5:2: error: ‘for’ loop initial declarations are only allowed in C99 mode
for(int i = 5;i<10;i ){
^
test.c:5:2: note: use option -std=c99 or -std=gnu99 to compile your code
$ gcc test.c -std=c99 && ./a.out
i:5
i:6
i:7
i:8
i:9
求质数
代码语言:javascript复制#include<stdio.h>
int main(){
int i,j,k,num = 0;
scanf("%d",&k);
for(i = 2;i < k; i ){
j = 2;
_Bool b = 1;
while(j < i){
if(i % j == 0){
b = 0;
j = i;
}
j ;
}
if(b){
num ;
printf("%d是质数n",i);
}
}
printf("%d以内的质数有%d个n",k,num);
return 0;
}
循环嵌套
99 乘法表
代码语言:javascript复制#include<stdio.h>
int main(){
int i,j;
for(i = 1;i <= 9; i ){
for(j = 1;j <= i;j ){
printf("%d x %d = %d ",i,j,i*j);
}
printf("n");
}
return 0;
}