C语言中简单的控制语句 if、switch、for、while、goto

本文详细讲解了C语言中的选择控制语句(if,else,elseif,switch)、循环控制语句(for,while,do-while)以及goto语句的用法和注意事项,为初学者提供了一个基础的编程入门指南。
摘要由CSDN通过智能技术生成

目录

1.选择控制语句

1. if语句

else 

else if

1.2switch 语句

2.循环控制语句

2.1for 循环

 2.2while  循环

 do while 

2.3 goto

总结


从0开始记录我的学习历程,我会尽我所能,写出最最大白话的文章,希望能够帮到你,谢谢。


提示:文章作者为初学者,有问题请评论指正,感谢。

1.选择控制语句

1. if语句

if 语句的作用:让计算机能够根据条件是否满足来决定接下来要执行的代码。如果条件满足(真),就执行一段代码;如果条件不满足(假),就不执行,或者执行另一段代码。

形式:

if (条件) {
    // 条件满足时要执行的代码
}

这里的“条件”可以是任何能够返回真或假的表达式,比如 a > bx == 10 或者 flag 等。

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

else 

有时候我们不仅仅想在条件满足时做点什么,还想在条件不满足时也做点什么。这时候就可以用到 if-else 语句:

if (条件) {
    // 条件满足时要执行的代码
} else {
    // 条件不满足时要执行的代码
}

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

else if

if (条件1) {
    // 条件1满足时要执行的代码
} else if (条件2) {
    // 条件1不满足,但条件2满足时要执行的代码
} else {
    // 所有条件都不满足时要执行的代码
}

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

例子

    int age = 19; // 假设这是用户的年龄
    if (age > 18) {
        printf("你已经成年了。\n");
    }
    else if (age == 18) {
        printf("你刚好成年。\n");
    }
    else
    {
        printf("你还没有成年。\n");   
    }
    return 0;

在这个例子中,如果 age 大于,程序会输出“你已经成年了。”;如果等于18则程序会输出“你刚好成年。”;如果小于 18,则输出“你还没有成年。” 

1.2switch 语句

switch 语句的作用:当你有很多条件需要判断,并且每个条件都对应不同的操作时,如果用一堆 if() {} else {}  语句会显得很乱。这时候,switch 语句就能派上用场了。

switch 语句的基本结构

switch (表达式) {
    case 值1:
        // 如果表达式的结果是值1,执行这里的代码
        break;
    case 值2:
        // 如果表达式的结果是值2,执行这里的代码
        break;
    // 可以有更多的 case
    default:
        // 如果表达式的结果不是任何 case 中的值,执行这里的代码
}

这里的“表达式”通常是一个变量或者一个能够计算出某个值的表达式。case 后面跟的是当表达式的结果与之匹配时要执行的代码。

例子

#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; }

这个例子中我们用到了scanf_s获取键盘上输入的数字后根据条件判断得出相应结果。

  • break 关键字的作用:在每个 case 之后,你会看到一个 break 语句。它的作用是防止程序继续执行下去,匹配到一个 case 后就停止。如果没有 break,程序会继续执行下一个 case 的代码,这通常不是我们想要的。
  • default 关键字的作用default 是一个特殊的 case,它会在没有任何 case 匹配时执行。你可以把它看作是 switch 语句的“最后手段”。

switch 语句就像是一个多层次的选择器,让我们可以根据不同的情况选择不同的操作路径。

2.循环控制语句

2.1for 循环

  1. for 循环的作用:for 循环是编程中用来重复执行一段代码多次的一种控制结构。
  2. for 循环的基本结构

    for (初始化表达式; 循环条件; 更新表达式) {
        // 循环体(需要重复执行的代码)
    }
    
    1. 初始化表达式:设置循环计数器的起始值。
    2. 循环条件:一个布尔表达式,只要它为真,循环就会继续执行。
    3. 更新表达式:每次循环结束时更新循环计数器。
  3. for 循环的工作流程

    1. 首先执行初始化表达式,通常用来设置循环计数器。
    2. 然后检查循环条件,如果为真,则执行循环体。
    3. 循环体执行完毕后,执行更新表达式,通常用来更新循环计数器。
    4. 再次检查循环条件,如果仍为真,继续执行循环体;如果为假,退出循环
  4. for 循环的例子:99乘法表

    #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;}

  5. for 循环的结构

    • 首先,我们看到了一个 for 循环的开头:for (i = 1; i <= 9; i++)
    • 让我们分解一下:
      • i = 1:这是初始化表达式,它设置循环计数器 i 的初始值为1。
      • i <= 9:这是循环条件,只要 i 的值小于或等于9,循环就会继续执行。
      • i++:这是更新表达式,每次循环结束后 i 的值会增加1。
  6. 内部嵌套的 for 循环

    • 在外层的 for 循环中,我们定义了一个变量 j,它的作用是控制每一行中的列数。
    • 内层的 for 循环是嵌套在外层循环中的,它用来打印每一行的乘法表。
    • 内层循环的条件是 j <= i,这意味着每一行的列数不会超过当前行数。
    • 循环体中的 printf("%d*%d = %d ", j, i, j * i); 会打印出每一行的乘法表。
  7. 注意事项

    1. 循环条件必须最终变为假,否则循环将无限进行,这称为无限循环。
    2. 更新表达式不一定非得是递增,也可以是递减或其他更新操作。

 2.2while  循环

  1. while循环的作用:while 语句是编程中用来重复执行一段代码直到某个条件不再满足为止的一种循环控制结构。
  2. while 语句的基本结构

    while (条件) {
        // 循环体(需要重复执行的代码)
    }
    
    • 条件:这是一个布尔表达式,只要它为真(true),循环就会继续执行。
    • 循环体:这是在条件为真时需要重复执行的代码块。
  3. while 语句的工作流程

    • 首先检查 while 后面的条件。
    • 如果条件为真,执行循环体内的代码。
    • 循环体执行完毕后,再次检查条件。
    • 如果条件仍然为真,继续执行循环体;如果为假(false),退出循环。
  4. while 语句的例子:假设我们要打印数字1到5:

    int i = 1; // 初始化计数器
    while (i <= 5) {
        printf("%d\n", i);
        i++; // 更新计数器
    }
    

    在这个例子中:

    • 我们首先初始化计数器 i 的值为1。
    • while 循环的条件是 i <= 5,意味着只要 i 的值小于或等于5,循环就会继续。
    • 循环体是 printf("%d\n", i); 和 i++;,它们会打印当前 i 的值,然后 i 的值增加1。
    • 当 i 的值超过5时,循环条件变为假,while 循环结束。
  5. 注意事项

    • 确保循环体内有更新条件的语句,否则可能会导致无限循环。
    • while 循环特别适合处理不确定循环次数的情况。

 do while 

  1. do {
        // 循环体(需要重复执行的代码)
    } while (条件);
    
    • 循环体:这是需要重复执行的代码块。
    • 条件:这是一个布尔表达式,只有当它为真(true)时,循环才会继续执行。
  2. do-while 语句的工作流程

    • 首先执行循环体内的代码。
    • 然后检查 while 后面的条件。
    • 如果条件为真,再次执行循环体。
    • 如果条件为假(false),退出循环。
  3. do-while 语句的例子:假设我们要打印数字1到5,但不知道循环应该执行多少次:

    int i = 1; // 初始化计数器
    do {
        printf("%d\n", i);
        i++; // 更新计数器
    } while (i <= 5);
    

    在这个例子中:

    • 我们首先初始化计数器 i 的值为1。
    • do 循环的循环体是 printf("%d\n", i); 和 i++;,它们会打印当前 i 的值,然后 i 的值增加1。
    • 循环体执行完毕后,检查条件 i <= 5
    • 当 i 的值超过5时,循环条件变为假,do-while 循环结束。
  4. do-while 与 while 的区别

    • do-while 循环至少执行一次循环体,即使条件一开始就是假的。
    • while 循环在执行循环体之前检查条件,如果条件一开始就是假的,循环体一次也不会执行。

2.3 goto

goto 语句是C语言中的一个控制流语句,它可以让程序跳转到代码中的另一个位置。使用 goto 语句时,你需要定义一个标签(label),然后在 goto 语句中使用这个标签来指定跳转的目的地。但是,要注意,虽然 goto 语句很,但是也会让代码很乱,因为跳来跳去的嘛,所以尽量避免用。

下面我用一个简单的例子来说明 goto 语句的用法:

#include <stdio.h>

int main() {
    int num = 0;

start_loop: // 这是一个标签
    if (num < 5) {
        printf("%d\n", num);
        num++;
        goto start_loop; // 跳回到标签 start_loop
    }

    printf("完成循环。\n");
    return 0;
}

在这个例子中:

  • 我们定义了一个标签 start_loop
  • 程序首先检查 num 是否小于5,如果是,就打印 num 的值。
  • 然后 num 的值增加1。
  • 接着,goto start_loop; 语句会让程序跳回到 start_loop 标签处,再次执行循环。
  • 当 num 达到5时,条件不再满足,循环结束,程序继续向下执行,打印出 “完成循环。” 并退出。

注意

  • goto 语句可以让程序跳转到任何位置的标签,不仅仅是向前跳转,也可以向后跳转。
  • 过度使用 goto 语句会使代码变得复杂和难以追踪,因此建议只在必要时使用,比如跳出多层嵌套循环。

 

总结

以上就是今天要讲的内容,本文仅仅简单介绍了C语言简单的控制语句if、for、while、goto,祝愿你我的朋友在学习的路上一帆风顺,也祝愿我会成为一个优秀的嵌入式工程师。

  • 62
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值