初阶认识c语言:if和switch句子结构

目录

一 .if

下图为else if 具体应用:

二.switch

1.选择结构语法

2.下列为具体列子

三.#include<>与””的区别(学习过程中发现的问题,补上去)

1.我们新建一个项目xx,只包含main.cpp一个文件​编辑

2.在xx项目中添加一个头文件stdio.h,并使用#include”stdio.h”

3.再往stdio.h文件里添加#include


c语言中有5大表达句式:

1表达式语句  2函数调用语句  3控制语句  4复合语句  5空语句

这回叙述的为控制语句中的循环分支语句的if   switch  

一 .if

1.if(若为真)

执行语句;

2.if(age<18)

          printf("未成年"); 

   else

          printf(“成年”);                      

3.多条件的话可以用else if

下图为else if 具体应用:

#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h>
int main()
	int grad = 65;

	if (grad >= 90)
    {                                     //成绩大于等于90的为非常优秀 
		printf("%s", "非常优秀");         //在大于等于60且小于90为优秀
	}
	else if(grad >= 60 && grad < 90) //这里不能写成60<=grad<90,因为若grad=20,则会出现0<90
//命题为真则还会打印优秀,所以不能写成这种形式(下图有解释)
	{
		printf("%s", "优秀");
	}

二.switch

1.选择结构语法

switch选择结构
        语法结构:
            switch(表达式){
             case 常量1:
                 代码块1;
                break;
              case 常量2:
               代码块2;
               break;
               ......
               case 常量n:
               代码块n;
                break;
               default:
                 代码块m;
                  break;
             }

2.下列为具体列子

#include<stdio.h>
#define _CRT_SECURE_NO_WARNINGS 
int n = 1;
    int m = 2;
	switch (n)
	{
	case 1:m++;
	case 2:n++;
	case 3:
		switch (n)
		{            //swich可嵌套使用
		case 1:n++;
		case 2:m++; n++;
		    break;
		}
	case 4:
		m++;
		break;
	default:
	    break;
	}
	printf("%d %d",m,n);   //最后输出结果为5  3
	return 0;
}                                            //执行规律:
   根据switch中()里表达式的值,来匹配case后面的常量值,匹配上哪一个常量值,就执行对应的代码块,执行完代码块后。
 执行break,退出整个switch选择结构,如果表达式的值与所有的case常量值都不匹配,则执行default语句中的代码块,然后执行break结束整个switch选择结构。

注意:
       1)表达式的值可以是int、short、byte、char、枚举类型、String
       2)case常量值不能重复,后面只能是字面 量,不能是自变量。
       3)break的作用是结束整个switch结构,如果省略了,代码会继续向下执行,知道遇到break,或者执行到了default语句后结束整个switch选择结构
这个现象称之为“case穿透”,这个case穿透可以合理使用。
       4)default语句是在表达式的与所有的case常量值不匹配的时候执行,可以省略。
default语句可以写在switch选择结构中的任意位置,一般写在switch选择结构的末尾。

三.#include<>与””的区别(学习过程中发现的问题,补上去)


C语言包含头文件有两种写法#include <stdio.h>和#include "stdio"(#include后面可以不空格),两种写法的区别如下:

#include <头文件>  : 编译器只会从系统配置的库环境中去寻找头文件,不会搜索当前文件夹。通常用于引用标准库头文件。
#include "头文件"  : 编译器会先从当前文件夹中寻找头文件,如果找不到则到系统默认库环境中去寻找。一般用于引用用户自己定义使用的头文件。

1.我们新建一个项目xx,只包含main.cpp一个文件

 可以看到,无论是#include"stdio.h"还是#include<stdio.h>程序都能正常运行

解析:1)使用#include<stdio.h>添加头文件时,编译器到标准库头文件中查找,发现stdio.h头文件,将其复制到当前行;2)而使用#include”stdio.h”添加头文件时,编译器先到当前项目所在的文件夹中查找stdio.h头文件,发现没有这个头文件,于是编译器到系统默认库环境中去寻找,发现stdio.h头文件,将其复制到当前

2.在xx项目中添加一个头文件stdio.h,并使用#include”stdio.h”

编译器报错,原因是printf未声明。

解析:使用#include”stdio.h”添加头文件时,编译器先到当前项目所在的文件夹中查找stdio.h头文件,发现用户自定义的stdio.h头文件,于是编译器将其复制到当前行。这里展开的头文件是用户自定义的头文件,用户自定义的stdio.h头文件没声明printf函数,所以当然会报错。


3.再往stdio.h文件里添加#include<stdio.h>

程序就能正常运行了。 


!!!!!!!注意#ifndef、#define、#endif作用:防止头文件被重复引用,防止被重复编译。

(点进看详细内容)

#ifndef 它是if not define的简写,是宏定义的一种,确切的说是预处理功能(宏定义、文件包含、条件编译)三种中的一种——条件编译。

使用#ifndef可以避免以下错误:如果在.h文件中定义了全局变量,一个C文件包含了.h文件多次,如果不加#ifndef宏定义,会出现变量重复定义的错误;如果加了#ifndef则不会出现这种错误.
 

猜你喜欢

转载自blog.csdn.net/fcccfffg/article/details/132086510