适合对象 c语言初学者 总结语言用色,个人强调用红色,注意为易错点,若有问题请告诉我谢谢。(建议通过目录观看)
if 函数
if函数是条件函数。
格式
if 接() 接 一种语句
执行方法
先判断()的真假,若为真,就执行。为假就不执行。
if 只管距它最近的一个语句或复合语句。
即 if(a>b)printf("a>b");
或
if(a>b)
{
printf("a>b");
a = a +1 ;
}
()内是一个可判断真假的表达式
常见表达式:if(2)(3>2)(a=1) (a==3)【T】
{
特别注意
(a=1)
(a==3)
if 语句 ()内容易把 == 写成 =
但编译器不会报错,会出现bug只需把常量放在前面。即(3==a)
}
记住
(
在C语言中
0为假,其余为真。
) 【1为真,36也为真】
例如
#include<stdio.h>
int main()
{
if(0) printf("this is true!");
return 0 ;
}
此时输出为无,
如果 if(1),将打印this is true!
但如果 if (36)呢?想一下
将打印this is true! 因为
(
在C语言中
0为假,其余为真。
) 【请用英文打代码】
一种语句
分为
1:单个语句 + ; (一定要有;)
2:{ 复合语句 + ; }
复合语句即为多个单个语句,单个语句间用 ;隔开。
例如
1:
if(a>b)printf("a>b");
2:
if(a>b)
{
printf("a>b");
a = a +1 ;
}
开始 a = 2 ; b = 3;
最后 不会打印 2>3 ,此时a=2;
那如果不加 {} 呢?
即
if(a>b)
printf("a>b");
a = a +1 ;
开始 a = 2 ; b = 3;
最后 不会打印2>3,此时 a = 3;
为什么a的值改变了;
if 只管距它最近的一个语句或复合语句。
加了{}时
{
printf("a>b");
a = a +1 ;
}
构成了复合语句。if会管辖整个复合语句。
a = 2 ;b = 3;a > b为假,则不执行复合语句。即 不会打印 2>3 ,此时a=2;
但未加{}时
if(a>b)
printf("a>b");
a = a +1 ;
if 只管距它最近的一个语句或复合语句
if 只管 printf("a>b");
a = 2 ;b = 3;a > b为假,则不执行printf("a>b");
然后程序继续读写代码 a = a +1 ; a的值就加1了。
即 最后 不会打印2>3,此时a=3;
若有错误,请告知我谢谢!
下面给几个代码判断 结果
if 类例题
复合语句类
1:
#include<stdio.h>
int main()
{
int a = 3;
int b = 2;
if (a > b)
printf("a>b");
a++;
printf("%d",a);
return 0;
}
2:
include<stdio.h>
int main()
{
int a = 3;
int b = 2;
if (a > b)
{ printf("a>b");
a++;
}
printf("%d",a);
return 0;
}
结果
1:a > b4
2: a > b4
3:
include<stdio.h>
int main()
{
int a = 2;
int b = 3;
if (a > b)
printf("a>b");
a++;
printf("%d",a);
return 0;
}
4:
include<stdio.h>
int main()
{
int a = 2;
int b = 3;
if (a > b)
{ printf("a>b");
a++;
}
printf("%d",a);
return 0;
}
结果
3: 3
4:2
真假判断类
1:
include<stdio.h>
int main()
{
if (0)
printf(" this is true ");
return 0;
}
2:
include<stdio.h>
int main()
{
if (1)
printf(" this is true ");
return 0;
}
3:
include<stdio.h>
int main()
{
if (36)
printf(" this is true ");
return 0;
}
结果
1: (无结果)
2: this is true
3: this is true
易错类
1:
include<stdio.h>
int main()
{
int a = 0 ;
if (a=0)
printf(" a == 0 ");
return 0;
}
2:
include<stdio.h>
int main()
{
int a = 0 ;
if (a==0)
printf(" a == 0 ");
return 0;
}
3:
include<stdio.h>
int main()
{
int a = 0 ;
if (a=1)
printf(" a == 1 ");
return 0;
}
4:
include<stdio.h>
int main()
{
int a = 0 ;
if (a==1)
printf(" a == 1 ");
return 0;
}
5
include<stdio.h>
int main()
{
int a = 0 ;
if (a==36)
printf(" a == 36 ");
return 0;
}
6:
include<stdio.h>
int main()
{
int a = 0 ;
if (a=36)
printf(" a == 36");
return 0;
}
结果
1: (无结果)
2:a == 0
3: a == 1
4: (无结果)
5: (无结果)
6: a == 36
若有问题请告诉我谢谢。
if else 语句
格式
if 接() 接 一种语句
else 接 一种语句
{
特别注意
else 前只能有 if 所管辖的一种语句
即
if()后如果接几个单一语句必须用 {} 包起来。否则会报错。
}
执行方法
先判断()的真假,若为真,就执行if管辖的语句。为假就执行else管辖的语句。 if else 语句 必执行且仅执行 if或else语句中的一个
if 或 else 只管距它最近的一个语句或复合语句
例如
#include<stdio.h>
int main()
{
int a = 3 ;
int b = 2 ;
if(a>b)
printf("a>b") ;
else
printf("a<b");
return 0 ;
}
运行结果为 a>b
分析
已知 a = 3 ;b = 2 ;
因为 3 > 2
即 a>b
if(a>b)中 ()为真 执行 if管辖的单个语句 printf(“a>b”)
不执行 else语句
输出为 a>b
即 if else 语句 必执行且仅执行 if或else语句中的一个
if 或 else 语句 后接复合语句 与 if 函数中 讲解一样。
if else if else 语句
格式
if 接() 接 一种语句
else if 接() 接 一种语句
else 接 一种语句
{
特别注意
else 前只能有 if 所管辖的一种语句
即
if()后如果接几个单一语句必须用 {} 包起来。否则会报错。
}
执行方法
先判断 if 中()的真假,
若为真, 就执行if管辖的语句。
为假 , 就判断else if 中()的真假
若为真, 就执行else if管辖的语句
为假 , 就执行else管辖的语句
{
若还有 else if 就继续判断else if 中()的真假 直到只有else语句
}
if else if else 语句 必执行且仅执行 if else if 或 else 语句中的一个
if 或 else 只管距它最近的一个语句或复合语句
标签:语句,main,函数,int,printf,else,简单,include From: https://blog.csdn.net/lb3636363636/article/details/143245691