c笔记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语句;

一般来说一个循环需要以下几部分构成:

循环控制条件

循环退出的主要依据,来控制循环到底什么时候退出

循环体

你可能感兴趣的:(c语言)