目录
1.C语言
C语言是一门结构化的程序设计语言
- 顺序结构
- 选择结构
- 循环结构
2.分支语句
语句:C语言中一个分号隔开的就是一条语句,如果一行只有分号(;)那么是空语句
C语言在编译扫描的时候,会将一条语句的分号作为结束标志,如果一条语句没有分号结束,就会报错。但是,如果分号和代码不在同一行,也没问题。
虽然这种代码风格很差,但是编译器先遇到代码,然后碰到分号结束一条语句,所以不报错
2.1if分支语句
if (exp)
语句1;
else if (exp)
语句2;
else
语句3;
{} 代表一个代码块,如果if..else...里面的语句,只有一句,可以省略{},但是如果多条语句需要{}代码块放到一起
Tips:
- (10<a<18)这种写法C语言是不支持的,C语言先执行10<a,根据结果返回真假1/0,在判断1/0<18是否成立.应该用&&逻辑与书写(10<a && a<18)
- else与最近的,没有匹配的if相匹配。而不是代码对齐匹配(悬空else问题)....
- if...else...条件判断的时候,里面如果是赋值等号(=),会根据赋予的值判断条件是否成立。0为假,非零为真
练习:输出1-100之间的奇数
2.2switch分支语句
switch(整型表达式)
{
case 整型常量表达式:
语句1;
break;
default:(case都不满足的时候)
语句2;
break;
}
注意:
- case,default没有顺序可言,满足哪个进哪个case,都不满足进default
- case没有break会发生case穿透,建议所有的case、default都加break
3.循环
3.1while循环
while(exp)
语句;
- break 用于跳出while循环
- continue 用于跳过本次循环,后面代码跳过
3.2 for循环
for(初始化;判断;调整)
语句;
- for尽量采用前闭后开的写法(i = 0;i<10)
- for(int i = 0;..;...)这种写法是C++写法,C不支持,有些编译器会编译失败
for循环的变种:(初始化、判断、调整都可以省略)
- 判断的部分省略,恒为真,则进入死循环
3.3 do..while 循环
do
{
语句;
}while(exp);
循环体至少被循环一次,但是不经常使用
4.getchar、putchar 的使用
ch = getchar() 输入一个字符
putchar(ch) 打印一个字符
4.1 EOF 文件结束标志
EOF(end of file)值为-1 (点击EOF,转到定义)
分析: getchar只能读取一个字符,虽然输入了EOF,但是编译器是读一个E,输出一个E,然后才是OF。
正确的退出:CTRL+Z
4.2 实际用途
scanf:输入函数
会在输入缓冲区找数据,如果有东西,会拿走回车(\n)之前或者空格之前的数据,那么ret会将\n读走,会出现放弃确认
正确示例:通过循环将输入缓冲区多余的内容,用getchar读走