C语言/判断语句

目录

一.if else 语句

注意要点:

二. 表达式

1.关系运算符

关系表达式有以下六个:

>    大于。

<    小于。

>=  大于等于。

<=  小于等于。

==  相等。

!=   不相等。

2.条件操作符

3.逻辑操作符

1.!逻辑取反操作符。

2.&& 与操作符。

3.|| 或操作符。

4.短路

三.switch语句

四.while语句

五.for循环

一.基本格式

二.和while循环的区别

三.练习一下

六.do while语句

一.基本格式

七.goto语句 

一.基本格式

总结


一.if else 语句

形式一:

if(表达式)

{

     语句1;

}

else

{

    语句2;

}

形式二:
if(表达式)

{
    语句1;

}

形式三:

if(表达式)

{

   语句1;

}

else if(表达式)

{

   语句2;

}

else if(表达式)

{
   语句3;

}
else

{

    语句4;

}

注意要点:

  1. 注意else总是与最接近的if匹配,所以在写程序的时候尤其注意花括号的使用“{ }”,可以使得代码更有条理也更方便阅读。 
  2. 写if else循环的时候,可以考虑从最特殊的情况开始写,会更容易写。

二. 表达式

1.关系运算符

在C语言中,用于比较的表达式,称为“关系表达式”,里面使用的运算符称为关系运算符。

关系表达式有以下六个:
  1. >    大于。
  2. <    小于。
  3. >=  大于等于。
  4. <=  小于等于。
  5. ==  相等。
  6. !=   不相等。

写个例子吧:求最大公约数的代码。里面就用了很多关系操作符。

#include <stdio.h>

int main()
{
    int a, b = 0;
    scanf("%d %d", &a, &b);
    while (a != b)
    {
        if (a > b)
        {
            a = a - b;
        }
        else
        {
            b = b - a;
        }
    }
    printf("%d", a);
    return 0;
}

请记住在C语言中,0表示假,非零值表示真。 

2.条件操作符

条件操作符也叫三目操作符,需要接受三个操作数。

格式:

exp1 ? exp2 : exp3

举个例子:

很简单,输入两个数,如果a大于5,则b等于3,反之b等于负三。如果用if esle语句来写是这样的。

#include <stdio.h>
int main()
{
	int a, b = 0;
	scanf("%d %d", &a, &b);
	if (a > 5) 
	{
		b = 3;
	}
	else
	{
		b = -3;
	}
	printf("%d", b);
	return 0;
}

可如果用条件操作符来写,则可以变成这样。

int main()
{
	int a, b = 0;
	scanf("%d %d", &a, &b);
	b = a > 5 ? 3 : -3;
	printf("%d", b);
	return 0;
}

看是不是简单了很多,所以适当的使用条件操作符可以使得代码变得简单易读。

3.逻辑操作符

1.!逻辑取反操作符。
int main()
{
	int a = 0;
	if (!a)
	{
		printf("%d", a);
	}
	return 0;
}

这里就是用了逻辑取反操作符,还记得刚刚说的,C语言中0为假,非零是真。所以这里的a是假,但是“!a”是真,所以执行if语句打印a的值。 

2.&& 与操作符。
int main()
{
	int mon = 0;
	scanf("%d", &mon);
	if (mon >= 3 && mon <= 5)
	{
		printf("春季");
	}
	return 0;
}

 这里是判断春季的代码,只有mon大于等于三月且mon小于等于五月,才能被判断为春季。“&&”与这个逻辑操作符有点像汉语里面的并且的意思。两个都要满足才能被判断为真。

3.|| 或操作符。
int main()
{
	int mon = 0;
	scanf("%d", &mon);
	if (mon == 9 || mon == 10)
	{
		printf("秋季");
	}
	return 0;
}

“||”或操作符,两个条件满足一个即可。

4.短路

根据左操作数的结果就能知道整个表达式的结果,不再对右操作数进⾏计算的运算称为短路求值。


三.switch语句

switch语句的一般形式

switch(表达式)

{
case 常量1:语句1;

case 常量2:语句2;

case 常量3:语句3;

}

或者多组case共用一个执行语句

switch(表达式)

{

case 常量1:

case 常量2:

case 常量3:语句1;

}

算了,估计你们看完这个格式之后又是一头雾水,举例子。

int main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day)
	{
	case 1:printf("工作日"); break;
	case 2:printf("工作日"); break;
	case 3:printf("工作日"); break;
	case 4:printf("工作日"); break;
	case 5:printf("工作日"); break;
	case 6:printf("休息日"); break;
	case 7:printf("休息日"); break;
	}
	return 0;
}

 像判断一个星期里面有哪几天是工作日,休息日,可以用上面的办法,也可以简单一点。

如下图:

int main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day)
	{
	case 1:
	case 2:
	case 3:
	case 4:
	case 5:printf("工作日"); break;
	case 6:
	case 7:printf("休息日"); break;
	}
	return 0;
}

这样简单多了,演示完了就应该明白了。

对了,每个case后面记得写一下break,这是个好习惯,爱你们,啵啵😘😘


四.while语句

基本格式:

while(表达式)

{


}

 while和if比较相似,但while和if还是有差别的。

int main()
{
	if (1)
	{
		printf("hhhhhh");
	}
	return 0;
}

这个if的循环只会打印一次

int main()
{
	while (1)
	{
		printf("hhhhhhh");
	}
	return 0;
}

while会死循环的打印hhhhh,这个时候应该果断地按住CTRL+c。(¬‿¬)

这就是这两个的区别,while 可以实现循环。

写个正经的例子,让你们感受一下while:(づ ̄3 ̄)づ╭❤️~

输入一个正的整数,然后逆序打印这个整数的每一位

int main()
{
 int n = 0;
 scanf("%d", &n);
 while(n)
 {
 printf("%d ", n%10);
 n /= 10;
 }
 return 0;
}

 while循环就先讲到这。


五.for循环

一.基本格式

for(表达式1; 表达式2; 表达式3)

语句;

  1. 表达式1 ⽤于循环变量的初始化
  2. 表达式2 ⽤于循环结束条件的判断
  3. 表达式3 ⽤于循环变量的调整

二.和while循环的区别

for循环的初始化,判断,调整这三个部分较为集中,便于维护代码,而while的这三部分较为分散,所以从形式上来说,for循环是优于while循环的。


三.练习一下

计算1~100之间3的倍数的数字之和


int main()
{
 int i = 0;
 int sum = 0;
 for(i=1; i<=100; i++)
 {
 if(i % 3 == 0)
 sum += i;
 }
 printf("%d\n", sum);
 return 0;
}

六.do while语句

一.基本格式

do 语句;

while(表达式);

do while不同于其他的语句,do while是先进入循环体,再去判断,所以在do while语句中循环体是至少被执行一次的。这是它比较特殊的地方。

七.goto语句 

一.基本格式

int main()
{
 printf("hehe\n");
 goto next:
 printf("haha\n");
 
next:
 printf("跳过了haha的打印\n"); 
 return 0;
}

算了,举例子吧。

goto 语句是可以实现跳转的,但使用的不好,就会在函数内部乱跳。在多层循环的代码里,如果想快速跳出,使用goto还是非常不错的。

总结

总算写完了,好累,但是还是想说谢谢能看到这里的各位,鄙人笔力不足,见识浅薄,多有不足之处,还请不吝赐教。爱你们,啵啵😘

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值