Scanf函数基本概念
scanf函数是一个阻塞式函数 程序会停在scanf函数出现的地方, 格式:scanf("格式控制字符串",输入项地址列表); 输入项时,各个地址名之间以逗号“,”分隔。输入格式和变量类型要保持一致。 |格式|意义| |--|--| |d|输入一个十进制整数| |o|输入一个八进制整数| |x|输入一个十六进制整数| |i|输入一个有符号或无符号的十进制、八进制、十六进制整数| |u|输入一个无符号十进制整数| |f 、e或E、 g或G|输入一个小数形式或指数形式的浮点数| |c|输入一个字符| |s|输入一个字符串| scanf("%d",&num); 非法的输入 除"空格","回车","tab"之外, 如果输入的数据和scanf接收的数据不匹配将会自动结束接收 运算符优先级 !(非) // 注意 ↑ 算术运算符 ↑ 关系运算符 ↑ &&和|| // 注意 ↑ 赋值运算符 与短路:&& 只要第一个条件表达为假那么后面的条件表达就不参与运算了 或短路:|| 只要第一个条件表达式为真那么后面的条件表达式就不参与运算了 三目运算符格式:表达式1?表达式2(结果A):表达式3(结果B) 3种流程结构分别是顺序、选择、循环三种基本控制结构构造.
- 顺序结构:默认的流程结构。按照书写顺序从上至下执行每一条语句。
· 选择结构:对给定的条件进行判断,再根据判断结果来决定执行哪一段代码。
- 循环结构:在给定条件成立的情况下,反复执行某一段代码。
if基本概念 · if(表达式1) · { · 语句块1 · }else if(表达式2){ · 语句块2 · }else if(表达式3){ · 语句块3 · }else{ · 语句块4 · } · Switch基本格式 switch(表达式){ case 常量表达式1: 语句1; break; case 常量表达式2: 语句2; ... break; case 常量表达式n: 语句n; break; default: 语句n+1; break; } 计算表达式的值。并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。 switch中case后面的表达式的值不能相同 case的值1、值2...值n只能为常数或常量,不能为变量。 switch里面的case只要匹配一次其它的都失效,包括default. 正是因为switch的这个特性, 所以可能导致程序出现逻辑错误 执行流程:在执行的过程中,如果遇到break语句,则跳出switch语句。如果没有遇到break语句,则一直执行到switch语句的结束。 分支比较多且无法穷尽或进行大量列举时最好用if, Switch对遇见判断非常不利 如果数据量不是很大, 并且数据是固定的可以用Switch 理论上Switch的效率比if高 循环结构概述 循环结构是程序中一种很重要的结构。其特点是,在给定条件成立时,反复执行某程序段, 直到条件不成立为止。给定的条件称为循环条件,反复执行的程序段称为循环体。 C语言供了多种循环语句,可以组成各种不同形式的循环结构: goto语句和if语句构成循环; while语句; do-while语句; for语句; 一般来说一个循环需要以下几部分构成: 循环控制条件 循环退出的主要依据,来控制循环到底什么时候退出 循环体
|