C语言中控制语句的详细用法和原理究竟如何深入解析?

2026-04-10 07:591阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1511个文字,预计阅读时间需要7分钟。

C语言中控制语句的详细用法和原理究竟如何深入解析?

目录 + 1.4 控制语句 + 1.4.1 选择控制语句 + 1.4.2 循环控制语句 + 控制语句 + 1.4.1 选择控制语句 + if语句 + 形式: + (1) if(条件表达式) { // 复合语句,若条件满足语句1;语句2; } + 如果条件满足


目录

1.4控制语句

1.4.1 选择控制语句

1.4.2 循环控制语句

C语言中控制语句的详细用法和原理究竟如何深入解析?


1.4控制语句

1.4.1 选择控制语句

1、 if 语句

形式:

(1) if(条件表达式)

{ //复合语句,若干条语句的集合

语句 1;

语句 2; }

如果条件成立执行大括号里的所有语句,不成立的话大括号里的语句不执行

例 20: #include<stdio.h> int main() { int a=10; if(a>5) { printf("a>5\n"); return 0; }}

(2) if(条件表达式) {

} else {

}

if else 语句的作用是,如果 if 的条件成立,执行 if 后面{}内的语句,否则执行 else 后的语句

例 21: #include<stdio.h> int main() { int a=10; if(a>5) { printf("a>5\n"); } else { printf("a<=5\n"); } return 0; }

注意 if 和 else 之间只能有一条语句,或者有一个复合语句,否则编译会出错

例 22: if() 语句 1; 语句 2; else 语句 3; 语句 4;

这是错误的,if 和 else 之间只能有一条语句,如果有多条语句的话加大括号

例 23: if(){ 语句 1; 语句 2; } else { 语句 3; 语句 4; }

正确

(3) if(条件表达式 1) { }

else if(条件表达式 2) { }

else if(条件表达式 3) { }

else { }

在判断的时候,从上往下判断,一旦有成立的表达式,执行对应的复合语句, 下边的就不再判断了,各个条件判断是互斥的

例 24: #include<stdio.h> int main(void) { char ch; float score = 0; printf("请输入学生分数:\n"); scanf("%f",&score); if(score<0 || score >100) { printf("你所输入的信息有错\n"); return 0; } else if( score<60) { ch = 'E'; } else if ( score < 70 ) { ch = 'D'; } else if ( score < 80 ) { ch = 'C'; } else if ( score < 90 ) { ch = 'B'; } else { ch = 'A'; } printf("成绩评定为:%c\n",ch); return 0; }

2、 switch 语句

switch(表达式)//表达式只能是字符型或整型的(short int int long int)

{

case 常量表达式1:

语句1;

break;

case 常量表达式2:

语句2;

break;

default:

语句3;

break; }

注意:break 的使用

例 25: #include<stdio.h> int main(int argc, char *argv[] { int n; printf("请输入一个 1~7 的数\n"); scanf_s("%d",&n); switch(n) { case 1: printf("星期一\n"); break; case 2: printf("星期二\n"); break; case 3: printf("星期三\n"); break; case 4: printf("星期四\n"); break; case 5: printf("星期五\n"); break; case 6: printf("星期六\n"); break; case 7: printf("星期天\n"); break; default: printf("您的输入有误,请输入 1~7 的数\n"); break; } return 0; }

1.4.2 循环控制语句

1、 for 循环 for(表达式 1;表达式 2;表达式 3)

{ //复合语句,循环体

} 第一次进入循环的时候执行表达式 1,表达式 1 只干一次, 表达式 2,是循环的条件,

只有表达式 2 为真了,才执行循环体,也就是说 每次进入循环体之前要判断表达式 2 是否为真。

每次执行完循环体后,首先执行表达式 3

例 25:for 循环求 1~100 的和 #include<stdio.h> int main(void) { int i; int sum=0; for(i=1;i<=100;i++) { sum = sum+i; } printf("sum=%d\n",sum); return 0; }

例 26: #include <stdio.h> int main(int argc, char *argv[]) { int i,j; for(i=1;i<=9;i++) { for(j=1;j<=i;j++) { printf("%d*%d=%d ",j,i,j*i); } printf("\n"); } return 0; }

2、 while 循环

(1) 形式 1:

while(条件表达式) {

//循环体,复合语句 }

进入 while 循环的时候,首先会判断条件表达式是否为真,为真进入循环体,否则退出循环

例 27: #include <stdio.h> int main(void) { int i=1; int sum=0; while(i<=100) { sum = sum+i; i++; } printf("sum=%d\n",sum); return 0; }

(2) 形式 2 :

do{//循环体}

while(条件表达式);

先执行循环体里的代码,然后去判断条件表达式是否为真,为真再次执行循环体,否则退出循环

例 28: #include <stdio.h> int main(void) { int i=1; int sum=0; do { sum = sum+i; i++; }while(i<=100); printf("sum=%d\n",sum); return 0; }

形式 1 和形式 2 的区别是,

形式 1 先判断在执行循环体,形式 2 先执行循环体,再判断 break 跳出循环 continue 结束本次循环,进入下一次循环.

例 29: #include <stdio.h> int main(void) { int i; int sum=0; for(i=1;i<=100;i++) { if(i==10) break;//将 break 修改成 continue 看效果 sum = sum+i; } printf("sum=%d\n",sum); return 0; }

return 返回函数的意思。结束 return 所在的函数.

3、 goto

例 30: #include <stdio.h> int main(int argc, char *argv[]) { printf("test000000000000000000\n"); printf("test1111111111111111\n"); goto tmp; printf("test222222222222222222\n"); printf("test3333333333333333\n"); printf("test444444444444444444444\n"); printf("test55555555555555555555\n"); tmp: printf("test66666666666666666\n"); return 0; }



本文共计1511个文字,预计阅读时间需要7分钟。

C语言中控制语句的详细用法和原理究竟如何深入解析?

目录 + 1.4 控制语句 + 1.4.1 选择控制语句 + 1.4.2 循环控制语句 + 控制语句 + 1.4.1 选择控制语句 + if语句 + 形式: + (1) if(条件表达式) { // 复合语句,若条件满足语句1;语句2; } + 如果条件满足


目录

1.4控制语句

1.4.1 选择控制语句

1.4.2 循环控制语句

C语言中控制语句的详细用法和原理究竟如何深入解析?


1.4控制语句

1.4.1 选择控制语句

1、 if 语句

形式:

(1) if(条件表达式)

{ //复合语句,若干条语句的集合

语句 1;

语句 2; }

如果条件成立执行大括号里的所有语句,不成立的话大括号里的语句不执行

例 20: #include<stdio.h> int main() { int a=10; if(a>5) { printf("a>5\n"); return 0; }}

(2) if(条件表达式) {

} else {

}

if else 语句的作用是,如果 if 的条件成立,执行 if 后面{}内的语句,否则执行 else 后的语句

例 21: #include<stdio.h> int main() { int a=10; if(a>5) { printf("a>5\n"); } else { printf("a<=5\n"); } return 0; }

注意 if 和 else 之间只能有一条语句,或者有一个复合语句,否则编译会出错

例 22: if() 语句 1; 语句 2; else 语句 3; 语句 4;

这是错误的,if 和 else 之间只能有一条语句,如果有多条语句的话加大括号

例 23: if(){ 语句 1; 语句 2; } else { 语句 3; 语句 4; }

正确

(3) if(条件表达式 1) { }

else if(条件表达式 2) { }

else if(条件表达式 3) { }

else { }

在判断的时候,从上往下判断,一旦有成立的表达式,执行对应的复合语句, 下边的就不再判断了,各个条件判断是互斥的

例 24: #include<stdio.h> int main(void) { char ch; float score = 0; printf("请输入学生分数:\n"); scanf("%f",&score); if(score<0 || score >100) { printf("你所输入的信息有错\n"); return 0; } else if( score<60) { ch = 'E'; } else if ( score < 70 ) { ch = 'D'; } else if ( score < 80 ) { ch = 'C'; } else if ( score < 90 ) { ch = 'B'; } else { ch = 'A'; } printf("成绩评定为:%c\n",ch); return 0; }

2、 switch 语句

switch(表达式)//表达式只能是字符型或整型的(short int int long int)

{

case 常量表达式1:

语句1;

break;

case 常量表达式2:

语句2;

break;

default:

语句3;

break; }

注意:break 的使用

例 25: #include<stdio.h> int main(int argc, char *argv[] { int n; printf("请输入一个 1~7 的数\n"); scanf_s("%d",&n); switch(n) { case 1: printf("星期一\n"); break; case 2: printf("星期二\n"); break; case 3: printf("星期三\n"); break; case 4: printf("星期四\n"); break; case 5: printf("星期五\n"); break; case 6: printf("星期六\n"); break; case 7: printf("星期天\n"); break; default: printf("您的输入有误,请输入 1~7 的数\n"); break; } return 0; }

1.4.2 循环控制语句

1、 for 循环 for(表达式 1;表达式 2;表达式 3)

{ //复合语句,循环体

} 第一次进入循环的时候执行表达式 1,表达式 1 只干一次, 表达式 2,是循环的条件,

只有表达式 2 为真了,才执行循环体,也就是说 每次进入循环体之前要判断表达式 2 是否为真。

每次执行完循环体后,首先执行表达式 3

例 25:for 循环求 1~100 的和 #include<stdio.h> int main(void) { int i; int sum=0; for(i=1;i<=100;i++) { sum = sum+i; } printf("sum=%d\n",sum); return 0; }

例 26: #include <stdio.h> int main(int argc, char *argv[]) { int i,j; for(i=1;i<=9;i++) { for(j=1;j<=i;j++) { printf("%d*%d=%d ",j,i,j*i); } printf("\n"); } return 0; }

2、 while 循环

(1) 形式 1:

while(条件表达式) {

//循环体,复合语句 }

进入 while 循环的时候,首先会判断条件表达式是否为真,为真进入循环体,否则退出循环

例 27: #include <stdio.h> int main(void) { int i=1; int sum=0; while(i<=100) { sum = sum+i; i++; } printf("sum=%d\n",sum); return 0; }

(2) 形式 2 :

do{//循环体}

while(条件表达式);

先执行循环体里的代码,然后去判断条件表达式是否为真,为真再次执行循环体,否则退出循环

例 28: #include <stdio.h> int main(void) { int i=1; int sum=0; do { sum = sum+i; i++; }while(i<=100); printf("sum=%d\n",sum); return 0; }

形式 1 和形式 2 的区别是,

形式 1 先判断在执行循环体,形式 2 先执行循环体,再判断 break 跳出循环 continue 结束本次循环,进入下一次循环.

例 29: #include <stdio.h> int main(void) { int i; int sum=0; for(i=1;i<=100;i++) { if(i==10) break;//将 break 修改成 continue 看效果 sum = sum+i; } printf("sum=%d\n",sum); return 0; }

return 返回函数的意思。结束 return 所在的函数.

3、 goto

例 30: #include <stdio.h> int main(int argc, char *argv[]) { printf("test000000000000000000\n"); printf("test1111111111111111\n"); goto tmp; printf("test222222222222222222\n"); printf("test3333333333333333\n"); printf("test444444444444444444444\n"); printf("test55555555555555555555\n"); tmp: printf("test66666666666666666\n"); return 0; }