分支与循环(1)

分支与循环(1),第1张

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。

——老子 《德经》


目录

导语:

🍎一、分支语句(选择结构)

🍇引入:

🍆1.1 if 语句

1.1.1 if 语句的语法结构:

1.1.2 演示代码及详讲

1.1.3报错原因探究:

🍉1.2 switch 语句

1.2.1 switch 语句结构

1.2.2演示代码及详讲

 结语:


导语:

C语言是一门结构化的程序设计语言,结构又分为顺序结构、选择结构与循环结构。 在前面的文章对于分支与循环有了简单的介绍,今天我们就正式介绍一下它。✊✊✊

在学习之前,我要问各位一个问题,究竟什么是语句呢?

C语言中由一个分号 ;  隔开的就是一个语句,如果在一个程序当中有一行只有一个分号的使用,也是可行的,这样的语句叫做空语句。(为什么要介绍基本的概念呢,因为我觉得这些是我们必须要打牢的知识点。)

🍎一、分支语句(选择结构) 🍇引入:

在现实的生活中,我们时常会遇到各种的选择,比如这样的一句俗语“红灯停,绿灯行,黄灯亮了等一等”。这就是很标准的分支语句,在红灯时我们要停下,绿灯时通行,黄灯时等待。

🍆1.1 if 语句 1.1.1 if 语句的语法结构:
//第一种
if(表达式)
      语句;

//第二种
if(表达式)
      语句1;
else 
      语句2;


//第三种:多分支的
if(表达式1)
      语句1;
else if(表达式2)
      语句2;
else
      语句3;
1.1.2 演示代码及详讲

第一种:也是最简单一种 if 语句,相信大家都会了,这里就简单的丢个代码出来。

咻~~~

#include 
 int main()
 {
 	float score=60.1;
 	if(score>=60)
 	   printf("及格\n"); 
 	   printf("老师捞捞,真好!\n");
 	   
 	return 0;
 }
 

第二种:

这一种就属于比较经典的if 语句啦,展示!

#include 
 int main()
 {
 	float score=59.9;
 	if(score>=60){
 	   printf("及格\n"); 
 	   printf("老师捞捞,真好!\n");
    }
 	else{
 	   printf("不及格\n");
 	   printf("老师尽力了\n");
    }
 
 	return 0;
 }
 

注意:else的大括号和else本身是可以省略掉的,如果表达式的结果为true,则输出 if  块内的代码,如果为false,则执行else块内的代码。C语言中把任何非零或非空的值假定为true,把零或null假定为false。

1.1.3报错原因探究:

第一种:悬空else

#include 
 int main()
 {
 	int a=0;
 	int b=2;
 	if(a==1)
 	    if(b==2)
 	printf("true");
 	else
 	printf("false");
 	
 	return 0;
 }
 

解释:

这里的表面上很正确,第一个if与else是一对啊,但是只要你运行一下你就会发现,你输出的没有结果,如下图所示,这是怎么回事呢,这就是else的就近,else会找到最近的if进行结合,而不是本题中的第一个if,所以当a不满足于等于1时,代码运行结束,也就不存在输出结果。

 所以,我们要怎么做,才能够输出我们想要的结果呢,我们只需要将第二个if语句用大括号括起来,当作第一个if的代码块就可以了,代码如下面这个一样,各位可以去试试。

#include 
 int main()
 {
 	int a=0;
 	int b=2;
 	if(a==1){
 	    if(b==2)
 	printf("true");
    }
 	else
 	printf("false");
 	
 	return 0;
 }
 

第二种:= 与 ==的含义搞混产生问题

#include 
 int main()
 {
 	int num=1;
 	if(num=10000)
 	{
 		printf("哈哈,你错啦!!!");
	 }
 	return 0;
 }

解释:

同志们,仔细看,咱是不是少了啥东西,眼尖的同志可能发现了,少了个等号欸,这里就需要在说一下,一个等号代表赋值,两个等号代表赋值相等,两者具有完全不同的意思。如果按照上述这样书写,if语句会被判断为真,也自然的会输出结果,所以我们写代码时,一定要仔细,仔细,仔仔细细。为了避免出现这样的错误,我们常常把赋值写在前面,变量写在后面,这是一种很好的方法,各位可以尝试一下。下面把正确的代码丢一下。

#include 
 int main()
 {
 	int num=1;
 	if(num==10000)
 	{
 		printf("哈哈,你错啦!!!");
	 }
 	return 0;
 }
🍉1.2 switch 语句 1.2.1 switch 语句结构
#include 
 int main()
 {
 	switch(整形表达式)
	 {
	 	case 整型常量表达式:
		  语句; 
		  break;
 		······ 
 		//default:
 		//	语句; 
 		//	break;
	 }
 	return 0;
 }
 
 
1.2.2演示代码及详讲
#include 
 
int main ()
{
   char grade=0;
   scanf("%c",&grade);
   
   switch(grade)
   {
   case 'A' :
      printf("非常好!\n" );
      break;
   case 'B' :
      printf("还不错\n" );
      break;
   case 'C' :
      printf("你通过了\n" );
      break;
   case 'D' :
      printf("最好再尝试一下,争取更好的成绩\n" );
      break;
   default :
      printf("成绩不合格,继续努力吧\n" );
   }
   printf("您的成绩是 %c\n", grade );
 
   return 0;
}

解释:

上面的代码可以说是很标准的switch语句的使用啦,我们要注意每个case语句后的break的使用,要不然很容易出现问题,导致连续输出多个语句,所以break的使用尤为重要。下面来一个题,也就是鹏哥讲的,这个题本小白感觉确实真的很不错,很容易出错。

#include 
int main()
{
    int n = 1;
    int m = 2;
    switch (n)
 {
    case 1:
        m++;
    case 2:
        n++;
    case 3:
         switch (n)
          {//switch允许嵌套使用
             case 1:
                     n++;
              case 2:
                     m++;
                     n++;
             break;
           }
    case 4:
         m++;
         break;
    default:
         break;
}
    printf("m = %d, n = %d\n", m, n);
 
     return 0;
}

同志们可以先自己想想结果在去实践 *** 作,下面给出具体的内容讲解。

 

 结语:

本篇文章就讲解到此,感谢读到此处的各位,本文如果有不当的地方,欢迎各位指正,本人一定虚心接受建议,今后我们一起努力,正如开头所说,”合抱之树,生于毫末;九层之台,起于累土;千里之行,始于足下“。✊✊✊

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/734061.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-04-27
下一篇2022-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存