【C语言】语句细节理解 超详细 易懂简单

switch嵌套语句与break、continue的代码例题。

通过以下程序可以帮助我们更好的理解switch语句的嵌套以及break和continue的作用。

#include <stdio.h>
  int main() {
   
  	int x = 3;
  	int y = 3;
  	switch (x % 2) // x%2的结果为1,因此执行case1
  	{
     
  	case 1:
  		switch (y)   // y=3,因此会执行case3,而case3不存在,那只能执行default
  		{
   
  		case 0:
  			printf("first");
  		case 1:
  			printf("second");
  			break;
  		default: printf("hello"); // 打印hello,内部switch结束,此时外部case1结束
  		}         // 因为外部case1之后没有添加break语句,所以继续执行case2
  	case 2:             // 打印third
  		printf("third");      // 外部switch结束
  	}
  	return 0;
  }

因此该程序打印结果是“hellothird”

  #include <stdio.h>
  int main()
  {
   
  	int a = 0, b = 0;
    // for循环将a和b的初始值设为1
  	for (a = 1, b = 1; a <= 100; a++)
  	{
   
  		if (b >= 20) break;
  		if (b % 3 == 1)
  		{
   
  			b = b + 3;
  			continue;
  		}
  		b = b-5;
  	}
  	printf("%d\n", a);
  	return 0;
  }

第一次循环:a = 1,b=1,b小于20,if条件不成立,b%3=1%3=1成立,b=b+3, 此时b的值为4

第一次循环:a = 2,b=4,b小于20,if不成立,b%3=4%3=1成立,b=b+3, 则b=7.
第一次循环:a = 3,b=7,b小于20,if不成立,b%3=7%3=1成立,b=b+3, 则b=10.

第一次循环:a = 4,b=10,b小于20,if不成立,b%3=10%3=1成立,b=b+3,则b=13.
第一次循环:a = 5,b=13,b小于20,if不成立,b%3=13%3=1成立,b=b+3, 则b=16.
第一次循环:a = 6,b=16—>b小于20,if不成立,b%3=16%3=1成立,b=b+3, 则b=19.
第一次循环:a = 7,b=19—>b小于20,if不成立,b%3=19%3=1成立,b=b+3, 则b=22.
第一次循环:a = 8,b=22,b大于20,if成立,循环break结束

  • 因此最后打印结果是:8

i++与++i的区别

前置++:先使用变量中内容,再给结果加1
后置++:先使用变量中内容,整个表达式结束时,给变量加1

逗号运算符的作用

在含有逗号运算符的表达式中,最终值为最后一个逗号后面表达式的值。

运算符优先级

1、逗号运算符的优先级比赋值运算符=号的优先级低
2、++、+的优先级比+=高
3、多个+号在一起的时候,其优先级为后置++、+、前置++, 如:a+++c,可看作(a++)+c

例题理解

//打印出结果
#include <stdio.h>
int main()
{
   
	int a, b, c;
	a = 5;
	c = ++a;//先加1,再赋值给a,a的值为6,再赋值给c为6
	b = ++c, c++, ++a, a++;//c先加1,再赋值给b,b为7,c=7.
	//c++使得c=8,++a使得a加1.所以a=7,a++使得a=8。
	//此时a=8,b=7,c=8.
	b += a++ + c;//a++后,a为9,,由于是后置a,所以a
	//在该表达式中计算时a为8,因此表达式为b+=7+c+1=8+8=16.
	//所以b=b+16=23,a=9;
 	  printf("a = %d b = %d c = %d\n:", a, b, c);
	return 0;
}
  • 最终打印结果为:a=9 b=23 c=8
    感谢阅读,希望能帮到大家!

相关推荐

  1. C语言语句细节理解 详细 易懂简单

    2024-02-06 02:46:01       33 阅读
  2. C语言结构体 全网最简单易懂

    2024-02-06 02:46:01       29 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-06 02:46:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-06 02:46:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-06 02:46:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-06 02:46:01       20 阅读

热门阅读

  1. Flink-1.18.1环境搭建

    2024-02-06 02:46:01       35 阅读
  2. element-plus 更换主题色

    2024-02-06 02:46:01       28 阅读
  3. C Primer Plus(第六版)15.9 编程练习 第6题

    2024-02-06 02:46:01       31 阅读
  4. ES6-let

    ES6-let

    2024-02-06 02:46:01      22 阅读
  5. 记一次Mysql加字段加不上问题排查过程

    2024-02-06 02:46:01       34 阅读
  6. NCCL 源码详解总目录

    2024-02-06 02:46:01       33 阅读
  7. 多线程与socket编程

    2024-02-06 02:46:01       35 阅读
  8. nginx负载均衡

    2024-02-06 02:46:01       34 阅读
  9. Blender 的重拓扑功能中的参数,

    2024-02-06 02:46:01       29 阅读
  10. salesforce flow 如何保存多选列表选中的值

    2024-02-06 02:46:01       28 阅读