if条件语句
在书写条件是最好将常量放在前面变量放在后面,以免出现类似情况
if(a=0) 则相当于if(0) 无法起到判断的作用 且编译时不会报错
if(0=a) 由于常量不能进行赋值因此编译时系统会报错
同样如果在程序中的赋值语句中不小心将
a=1 写成 a==1 此时系统不会报错,但此时无法完成对变量a的赋值操作
作用域不明确错误需注意
例如
if(10>6) if(10>6)
int a=5; 错误 { int a = 5; } 正确
此种情况下 变量a的作用域不明确
C语言检查作用域是通过{ }来进行的,如果要在if后面的语句中定义新的变量必须用大括号
因此:if语句中最好使用大括号标明作用域
switch 只适用于等于具体的值 if 适用于符合某个范围的所有值
if 与switch之间的关系
1、if语句能完成的功能,switch并不一定能完成
2、switch能完成的功能,if一定能完成
3、有些情况下,if与switch 完全等同
while循环语句中一定要注意 判断条件(其中的变量)每次每次都应改变,否则就成了无线循环
continue:跳出本次循环进入下一次循环
break:跳出循环体 不再进行循环操作
while和do while 的区别
1、很多情况下,while和do while 可以互换
2、while特点:如果一开始的条件不成立,永远不会执行循环体
do while特点“不管一开始条件是否成立,都会执行一次循环体
for语句:
for(语句1;条件;语句2)
{
循环体
}
语句1:初始化语句(最好携程 int i=0 定义局部变量节省内存空间)
语句2:增量语句(执行完循环体后在执行的语句)
1、for一开始就会执行一次语句一(整个for循环只会执行一次)
2、判断条件是否成立
如果条件成立,就会执行一次循环体,
然后执行语句2,再次判断条件是否成立
for(int i=0;i<5;i++)
{
int i=10;
printf("%d",i);
}
结果i=10 共输出5次
无错误 两个 i的作用域不同
for(int i=0;i<5;a++)
{
int a=10;
}
错误,a的作用域仅为大括号内(i作用域为for语句+大括号内)
输出语句中,要输出的变量的值 若在程序中多次定义,则根据就近原则
最简单的for循环
for(;;);
最简单的while循环
while(1)
注意:
在需要用户键盘输入的情况下,一定要添加判断语句,判断用户输入的数据是否合法
break:
1、适用场合
①switch语句:退出整个switch语句
②循环结构:退出整个循环语句
*while
*do while
*for
2、注意点:
只对最近的循环结构有效(多重嵌套的情况下)
continue
1、适用场合
循环结构:结束当前这次循环体,进入下一次循环体
*while
*do while
*for
2、注意:
只对最近的循环结构有效(多重嵌套的情况下)
问题二、
注意 if 与 switch语句中出现的作用域不明确的问题
解决方法,添加大括号if{}else{} switch{case{} case{}}
在书写条件是最好将常量放在前面变量放在后面,以免出现类似情况
if(a=0) 则相当于if(0) 无法起到判断的作用 且编译时不会报错
if(0=a) 由于常量不能进行赋值因此编译时系统会报错
同样如果在程序中的赋值语句中不小心将
a=1 写成 a==1 此时系统不会报错,但此时无法完成对变量a的赋值操作
作用域不明确错误需注意
例如
if(10>6) if(10>6)
int a=5; 错误 { int a = 5; } 正确
此种情况下 变量a的作用域不明确
C语言检查作用域是通过{ }来进行的,如果要在if后面的语句中定义新的变量必须用大括号
因此:if语句中最好使用大括号标明作用域
switch 只适用于等于具体的值 if 适用于符合某个范围的所有值
if 与switch之间的关系
1、if语句能完成的功能,switch并不一定能完成
2、switch能完成的功能,if一定能完成
3、有些情况下,if与switch 完全等同
while循环语句中一定要注意 判断条件(其中的变量)每次每次都应改变,否则就成了无线循环
continue:跳出本次循环进入下一次循环
break:跳出循环体 不再进行循环操作
while和do while 的区别
1、很多情况下,while和do while 可以互换
2、while特点:如果一开始的条件不成立,永远不会执行循环体
do while特点“不管一开始条件是否成立,都会执行一次循环体
for语句:
for(语句1;条件;语句2)
{
循环体
}
语句1:初始化语句(最好携程 int i=0 定义局部变量节省内存空间)
语句2:增量语句(执行完循环体后在执行的语句)
1、for一开始就会执行一次语句一(整个for循环只会执行一次)
2、判断条件是否成立
如果条件成立,就会执行一次循环体,
然后执行语句2,再次判断条件是否成立
for(int i=0;i<5;i++)
{
int i=10;
printf("%d",i);
}
结果i=10 共输出5次
无错误 两个 i的作用域不同
for(int i=0;i<5;a++)
{
int a=10;
}
错误,a的作用域仅为大括号内(i作用域为for语句+大括号内)
输出语句中,要输出的变量的值 若在程序中多次定义,则根据就近原则
最简单的for循环
for(;;);
最简单的while循环
while(1)
注意:
在需要用户键盘输入的情况下,一定要添加判断语句,判断用户输入的数据是否合法
break:
1、适用场合
①switch语句:退出整个switch语句
②循环结构:退出整个循环语句
*while
*do while
*for
2、注意点:
只对最近的循环结构有效(多重嵌套的情况下)
continue
1、适用场合
循环结构:结束当前这次循环体,进入下一次循环体
*while
*do while
*for
2、注意:
只对最近的循环结构有效(多重嵌套的情况下)
问题二、
注意 if 与 switch语句中出现的作用域不明确的问题
解决方法,添加大括号if{}else{} switch{case{} case{}}