前言
C语言中的控制语句是非常重要的一个知识点,其实说白了,C语言中的控制语句就是我们在生活中经常会说到的:如果
,否则
,或者
。。。。其实这些控制语句都是非常贴近于我们的生活的。
一、分支语句
C语言中的分支、语句可以根据条件执行不同的代码分支。
其中,常用的、分支语句包括:
1.if语句
if语句:用于根据条件的真假执行不同的代码。语法结构如下:
if (条件表达式) { // 条件为真时执行的代码 } else { // 条件为假时执行的代码 }
其中,条件表达式返回值为非0时为真,为0时为假。
用我们生活中的话这里可以翻译为如果条件表达式是真的那么就执行if括号里面的代码,否则就执行else括号里面的代码。
C语言代码例子:
#include <stdio.h> int main() { int a = 10; if (a > 10) { printf("a大于10这是对的\n"); } else { printf("a大于10这是错的\n"); } }
运行效果:
2.if else else if
else if语句的语法结构如下:
if (条件表达式1) { // 条件1为真时执行的代码 } else if (条件表达式2) { // 条件2为真时执行的代码 } else { // 以上条件都不成立时执行的代码 }
当条件表达式1的返回值为非0时,执行if语句后的花括号中的代码;否则判断条件表达式2的返回值,若为真,执行else if后的花括号中的代码;若二者都为假,则执行else后的花括号中的代码。
需要注意的是,else if语句的判断顺序是从上到下,只要找到一个为真的条件,就会执行对应的代码,并跳过后续的else if条件和else语句。
(这里的意思就是当执行了if的话就不会执行下面的else if和else,当执行else if后就不会执行下面的else了,翻译过来就是说只会执行其中的一个分支)
以上是if else else if语句的基本语法和运行原理,需要根据实际情况选择合适的方式实现程序逻辑。
3.switch语句
switch语句:将某个表达式的值与多个case标签所表示的值进行匹配,执行对应的代码。语法结构如下:
switch (表达式) { case 标签1: // 表达式值与标签1相等时执行的代码 break; case 标签2: // 表达式值与标签2相等时执行的代码 break; default: // 表达式值都不匹配时执行的代码 break; }
注意:在case分支中必须加上break语句,否则将会继续执行下一个case分支中的代码。
代码例子:
使用scanf输入数字,输入1和2可以执行switch中不同的分支。
int main() { int a = 0; scanf_s("%d", &a); switch (1) { case 1: printf("ONE\n"); break; case 2: printf("TOW\n"); break; default: break; } }
二、循环语句
1.for循环
语法结构:
for (初始表达式; 循环条件; 更新表达式) { 循环体语句; }
其中,初始表达式是在循环开始前执行的,循环条件是在每次循环开始前测试的,如果循环条件为真,就执行循环体中的语句,然后执行更新表达式,然后再次测试循环条件。如果循环条件为假,则退出循环。
代码示例:
循环打印5次a的值。
int main() { int a = 0; for (a = 0; a < 5; a++) { printf("a = %d\n", a); } }
2.while循环
语法结构如下:
while (循环条件) { 循环体语句; }
while循环首先测试循环条件,如果循环条件为真,则执行循环体中的语句,然后再次测试循环条件。如果循环条件为假,则退出循环。
代码示例:
while循环打印5次a的值:
int main() { int a = 0; while (a < 5) { printf("a = %d\n", a); a++; } }
3.do-while循环
语法结构:
do { 循环体语句; } while (循环条件);
do-while循环会先执行循环体中的语句,然后测试循环条件。如果循环条件为真,则继续执行循环体。如果循环条件为假,则退出循环。
需要注意的是,在使用循环语句时,应注意循环条件的准确性,以避免陷入无限循环的危险。
示例代码:
do { printf("a = %d\n", a); a++; } while (a < 5);
三、跳转语句
在C语言中,跳转语句可以使程序在不同的位置之间跳转,从而改变代码的执行流程。C语言中主要有三种跳转语句:break、continue和goto。
continue和goto其实在实际开发中用的比较少,这里只做简单介绍。
1.break语句
break语句一般用于循环语句和switch语句中,用于跳出当前的循环或switch语句。当执行到break语句时,程序会立即退出当前的循环或switch语句。
2.continue语句
continue语句用于循环语句中,用于跳过当前循环的剩余部分,直接开始下一次循环。当执行到continue语句时,程序会跳过循环体中remain语句,直接进行下一次循环的测试。
3.goto语句
goto语句可以在程序中跳转到一个标签(label)所指定的位置。它的语法结构如下:
goto label; ... label: statement;
goto语句会使程序跳转到代码中的标记标签处进行执行,与标签的位置无关。goto语句的使用应当谨慎,因为它容易造成程序流程的混乱,从而使程序更难以理解和维护。
需要注意的是,虽然跳转语句可以使程序流程更加灵活,但过多地使用会增加代码的复杂性,从而降低程序的可读性和维护性。因此,在使用跳转语句时,应当视情况而定,尽量遵循代码风格的规范性和可维护性原则。
四、嵌套语句
在C语言中,嵌套语句指的是在一个语句中,包含了另一个完整的语句,即一个语句中嵌套了另一个语句,这样的语句被称为嵌套语句。嵌套语句可以用来组合多个操作,实现更复杂的功能。C语言中支持多种类型的嵌套语句,常见的有以下几种:
1.if语句嵌套
if语句可以嵌套在另一个if语句或其他语句中。if语句嵌套的语法如下:
if (condition1) { // do something if (condition2) { // do something } }
2.for语句嵌套
for语句也可以嵌套在另一个for语句或其他语句中。for语句嵌套的语法如下:
for (initialization;condition;increment) { // do something for (initialization;condition;increment) { // do something } }
第一个for语句中的初始化表达式、循环条件和更新表达式控制了外层循环的执行过程;而内层的for语句中的初始化表达式、循环条件和更新表达式则控制了内层循环的执行过程。注意,内层循环的循环体语句会在每一个外层循环执行时重复执行。
下面给出一个九九乘法表代码示例:
#include <stdio.h> int main() { for (int i = 1; i <= 9; i++) { // 控制行 for (int j = 1; j <= i; j++) { // 控制列 printf("%d*%d=%d\t", j, i, i*j); } printf("\n"); } return 0; }
这里提一个点for语句嵌套的执行次数为内层次数乘外层次数。
3.while语句嵌套
while语句同样支持嵌套。while语句嵌套的语法如下:
while (condition1) { // do something while (condition2) { // do something } }
需要注意的是,嵌套语句可以让程序的逻辑结构更加清晰,但是嵌套层数过多会降低代码的可读性,导致代码难以理解和维护。因此,在实际使用中应当根据具体情况进行选择,避免过多的嵌套和复杂的代码逻辑。
总结
本篇文章主要带大家学习了C语言的控制语句,这个也是C语言中的一个重点希望大家能够好好理解消化。