栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

分支与循环(1)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

分支与循环(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("您的成绩是 %cn", 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 = %dn", m, n);
 
     return 0;
}

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

 

 结语:

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/836490.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号