【C语言初阶】探索编程基础:深入理解分支与循环语句的奥秘

07-17 1283阅读

📝个人主页🌹:Eternity._

⏩收录专栏⏪:C语言 “ 登神长阶 ”

🤡往期回顾🤡:C语言入门

🌹🌹期待您的关注 🌹🌹

【C语言初阶】探索编程基础:深入理解分支与循环语句的奥秘

【C语言初阶】探索编程基础:深入理解分支与循环语句的奥秘

【C语言初阶】探索编程基础:深入理解分支与循环语句的奥秘

❀分支与循环语句

  • 📒1. 什么是语句?
  • 📜2. 分支语句
    • 🔄if 语句
      • 🍁else 的匹配
      • 🍂if 书写形式
      • 💬switch 语句
        • 🎩switch中 break
        • 🎈default子句
        • 📚3. 循环语句
          • 🧩while 循环
            • 🌞while中 break
            • 🌙while中 continue
            • 🧩for 循环
              • ⛰️break和continue在for循环中
              • 🏞️for语句的循环控制变量
              • 🌄for循环和while循环
              • 🧩do while 循环
                • 🌄do while循环中的break和continue
                • 📝4. goto语句
                • 📖5. 总结

                  前言: 在编程的世界里,构建程序的基石不仅仅是数据的表示与处理,更在于如何根据条件做出选择,以及如何重复执行特定的代码块以完成任务。这正是分支语句(如if-else、switch等)和循环语句(如for、while、do-while等)大放异彩的舞台。它们如同编程语言的导航员和动力源泉,引领着代码逻辑在复杂的任务中穿梭前行,实现高效、灵活的程序逻辑控制

                  分支语句: 让我们能够基于不同的条件执行不同的代码块,它们如同决策树上的分叉,每个分叉都代表了一个可能的路径,根据条件判断的结果选择最合适的路径继续执行。这种能力使得程序能够根据用户输入、系统状态或计算结果等外部条件灵活地调整其行为,从而应对各种复杂多变的场景

                  循环语句: 是重复执行某段代码的强大工具。无论是需要遍历数组、处理大量数据、还是执行周期性任务,循环语句都能以简洁高效的方式完成任务。它们通过设定循环条件和循环体,使得程序能够在满足条件的情况下不断重复执行特定的操作,直至条件不再满足为止。这种能力极大地提高了程序的自动化程度和执行效率

                  因此,掌握分支和循环语句是成为一名合格程序员不可或缺的一步 。它们不仅是构建程序逻辑的基本单元,更是实现复杂功能和优化程序性能的关键所在。在接下来的内容中,我们将深入探讨这两种语句的工作原理、语法规则以及实际应用场景,帮助大家更好地理解并灵活运用它们来编写高效、可靠的程序代码

                  让我们一同踏上这段充满挑战与收获的C语言分支与循环语句之旅吧!


                  📒1. 什么是语句?

                  C语句可分为以下五类:

                  • 表达式语句
                  • 函数调用语句
                  • 控制语句
                  • 复合语句
                  • 空语句

                    我们今天介绍的是控制语句:

                    控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选择结构、循环结构),它们由特定的语句定义符组成

                    控制语句可分为以下三类:

                    • 条件判断语句也叫分支语句:if语句、switch语句;
                    • 循环执行语句:do while语句、while语句、for语句;
                    • 转向语句:break语句、goto语句、continue语句、return语句

                      📜2. 分支语句

                      分支语句(Branch Statements)在编程中扮演着至关重要的角色,它们允许程序根据特定的条件执行不同的代码块。这种能力使得程序能够处理不同的输入、状态或计算结果,从而以灵活和动态的方式响应各种情况

                      我们在前两节入门时简单提到过


                      🔄if 语句

                      if 语句代码示例:

                      // 语法结构:
                      if(表达式)
                      	语句1;
                      else
                      	语句2;
                      	
                      //多分支
                      if(表达式1)
                      	语句1;
                      else if(表达式2)
                      	语句2;
                      else
                      	语句3;
                      

                      在 if 语句中,我们规定如果表达式的结果为真,则语句执行

                      注意: 在C语言中0表示假,非0表示真

                      如果表达式的结果为真,我们想要执行多条指令就需要用 { } 将指令括起来代表一个代码块

                      if(表达式1)
                      {
                      	指令1;
                      	指令2;
                      	......
                      }
                      else if(表达式2)
                      {
                      	指令3;
                      	指令4;
                      	......
                      }
                      else
                      {
                      	指令5;
                      	......
                      }	
                      

                      🍁else 的匹配

                      我们先来看一段代码:

                      #include 
                      int main()
                      {
                      	int a = 0;
                      	int b = 2;
                      	if(a == 1)
                      		if(b == 2)
                      			printf("hehe\n");
                      	else
                      		printf("haha\n");
                      return 0;
                      }
                      

                      我想大部分人以为会输出haha,但是实际它什么都不会输出,因此我们要将代码写规范

                      因为:else的匹配是和它离的最近的 if 匹配的

                      #include 
                      int main()
                      {
                      	int a = 0;
                      	int b = 2;
                      	if(a == 1)
                      	{	
                      		if(b == 2)
                      		{
                      			printf("hehe\n");
                      		}
                      	}
                      	else
                      	{
                      		printf("haha\n");
                      	}	
                      return 0;
                      }
                      

                      所以一定要将代码写规范,不然会发生想不到的错误


                      🍂if 书写形式

                      //代码1
                      if (condition) {
                      	return x;
                      }
                      return y;
                      //代码2
                      if(condition)
                      {
                      	return x;
                      }
                      else
                      {
                      	return y;
                      }
                      //代码3
                      int num = 1;
                      if(num == 5)
                      {
                      	printf("hehe\n");
                      }
                      //代码4
                      int num = 1;
                      if(5 == num)
                      {
                      	printf("hehe\n");
                      }
                      

                      代码2和代码4更好,逻辑更加清晰,不容易出错,书写代码3时,如果疏忽少了一个=那么结果将有很大差异


                      💬switch 语句

                      🎩switch中 break

                      在switch语句中,我们没办法直接实现分支,搭配break使用才能实现真正的分支

                      switch代码示例:

                      #include 
                      int main()
                      {
                      	int day = 1;
                      	switch (day)
                      	{
                      	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;
                      	}
                      	return 0;
                      }
                      

                      注意:break语句 的实际效果是把语句列表划分为不同的分支部分

                      如果我们想 输入1-5,输出的是“weekday”; 输入6-7,输出“weekend”,我们可以用 break 来划分

                      int main()
                      {
                      	int day = 3;
                      	switch (day)
                      	{
                      	case 1:
                      	case 2:
                      	case 3:
                      	case 4:
                      	case 5:
                      		printf("weekday\n");
                      		break;
                      	case 6:
                      	case 7:
                      		printf("weekend\n");
                      		break;
                      	}
                      	return 0;
                      }
                      

                      注意:建议在最后一个 case 语句的后面加上一条 break语句,避免出现在以前的最后一个 case 语句后面忘了添加 break语句


                      🎈default子句

                      如果表达的值与所有的case标签的值都不匹配的话,所有的语句都被跳过。程序并不会终止,也不会报错,因为这种情况在C中并不认为是个错误。

                      但是,如果我们想在不匹配所有标签的表达式的值时让程序输出特定语句,我们可以在语句列表中增加一条default子句,在里面加入特定语句

                      default:
                      	......
                      	break;
                      

                      注意:

                      • 写在任何一个 case 标签可以出现的位置
                      • 当 switch 表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行。所以,每个switch语句中只能出现一条default子句
                      • 它可以出现在语句列表的任何位置,而且语句流会像执行一个case标签一样执行default子句

                        建议在每个 switch 语句中都放一条default子句是个好习惯,甚至可以在后边再加一个 break


                        📚3. 循环语句

                        循环语句是编程中非常重要的一部分,它们允许程序重复执行一段代码块直到满足某个条件为止。循环语句可以分为几种不同的类型,但最常见的是for循环、while循环和do-while循环


                        🧩while 循环

                        🌞while中 break

                        int main()
                        {
                        	int i = 1;
                        	while (i 
                        		if (i == 5)
                        			break;
                        		printf("%d ", i);
                        		// 这里输出的是 1,2,3,4
                        		i = i + 1;
                        	}
                        	return 0;
                        }
                        
                        	int i = 1;
                        	while (i 
                        		i = i + 1;
                        		if (i == 5)
                        			continue;
                        		printf("%d ", i);
                        		// 这里输出的是 2,3,4,6,7,8,9,10,11
                        	}
                        	return 0;
                        }
                        
                        	int i = 0;
                        	//for(i=1/*初始化*/; i
                        		printf("%d ", i);
                        	}
                        	return 0;
                        }
                        
                        	int i = 0;
                        	for (i = 1; i 
                        		if (i == 5)
                        			break;
                        		printf("%d ", i);
                        	}
                        	return 0;
                        }
                        // 代码2
                        int main()
                        {
                        	int i = 0;
                        	for (i = 1; i 
                        		if (i == 5)
                        			continue;
                        		printf("%d ", i);
                        	}
                        	return 0;
                        }
                        
                        	// 语句......	
                        }
                        
                        	......
                        }
                        
                        	printf("hehe\n");
                        	i = i+1;//调整部分
                        }
                        //实现相同的功能,使用while
                        for(i=1; i
                        	printf("hehe\n");
                        }
                        
                        	循环语句;
                        }while(表达式);
                        
                        	int i = 1;
                        	do
                        	{
                        		printf("%d ", i);
                        		i=i+1;
                        	}while(i
                        	int i = 1;
                        	do
                        	{
                        		if(5 == i)
                        			break;
                        		printf("%d ", i);
                        		i=i+1;
                        	}while(i
                        	int i = 1;
                        	do
                        	{
                        		if(5 == i)
                        			continue;
                        		printf("%d ", i);
                        		i=i+1;
                        	}while(i
                        		for(...)
                        		{
                        			if(disaster)
                        				goto error;
                        		}
                        	}
                        .......
                        error:
                        	if(disaster)
                        		// 处理错误情况
                        
                        	char input[10] = {0};
                        	system("shutdown -s -t 60");
                        again:
                        	printf("电脑将在1分钟内关机,如果输入:我是猪,就取消关机!\n请输入:");
                        	scanf("%s", input);
                        	if(0 == strcmp(input, "我是猪"))
                        	{
                        		system("shutdown -a");
                        	}
                        	else
                        	{
                        		goto again;
                        	}
                        	return 0;
                        }
                        // 循环语句
                        #include 
                        	char input[10] = {0};
                        	system("shutdown -s -t 60");
                        	while(1)
                        	{
                        		printf("电脑将在1分钟内关机,如果输入:我是猪,就取消关机!\n请输入:");
                        		scanf("%s", input);
                        		if(0 == strcmp(input, "我是猪"))
                        		{
                        			system("shutdown -a");
                        				break;
                        		}
                        	}
                        	return 0;
                        }
                        
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]