C语言中判断与循环的用法

C语言中判断与循环的用法

判断

一 : 什么是判断?

根据比较的结果,决定做,还是不做某些动作,这个过程就要用到if语句。

一个基本的if语句的开头需要关键字if,跟上后一个小括号(),括号里是一个表示条件的逻辑表达式,然后是一对大括号“{}”之间的条件语句。如果表示条件的逻辑表达式结果为true,那么就执行后面大括号“{}”里面的语句,否则这些语句不执行,而继续执行下面的其他语句。

例如:

#include<stdio.h>
int main()
{
  int hour1, minute1;
  int hour2, minute2;

  scanf_s("%d %d", &hour1, &minute1);
  scanf_s("%d %d", &hour2, &minute2);

  int ih = hour2 - hour1;
  int im = minute2 - minute1;

  if (im < 0) {
  	im = +60;
  	ih--;
  }
  printf("时间差为%d小时%d分钟,\n", ih, im);
  return 0;
}

演示

1 20
3 40
时间差为2小时20分钟,

C:\Users\86132\Desktop\C语言\判断与循环\x64\Debug\判断与循环.exe (进程 25504)已退出,代码为 0。
按任意键关闭此窗口. . .

二:作比较

根据事先制定的规则做出判断,是计算机的基本能力。

能做判断的基础,是能对数据做比较,比较就是关于两个数据是否相等,谁大谁小,这需要用到关系运算:对两个数据之间的关系的计算。

在C语言中提供了六个关系运算符:

 == 等于
 !=不等于
 > 大于
 < 小于
 >= 大于或等于
 <= 小于或等于

注意
==、>=和<=的两个字符必须紧紧连在一起,中间不能插入空格。

三:判断条件
条件:关系运算,比较运算

关系运算:计算两个值之间的关系
关系运算的结果:当两个值符合关系运算符的规范时,关系运算的结果整数为1,否则为整数0.

例如:

#include<stdio.h>
int main()
{
	printf("%d\n", 2 == 5);
	printf("%d\n", 2 >= 5);
	printf("%d\n", 2 <= 5);

	return 0;
}

结果:

0
0
1

C:\Users\86132\Desktop\C语言\判断与循环\x64\Debug\判断与循环.exe (进程 18948)已退出,代码为 0

四:优先级
算数运算>关系运算>赋值运算

例如

#include<stdio.h>
int main()
{
	printf("%d", 7 >= 2 + 3);

	return 0;
}

结果

1
C:\Users\86132\Desktop\C语言\判断与循环\x64\Debug\判断与循环.exe (进程 22552)已退出,代码为 0。
按任意键关闭此窗口. . .

注意
判断是否相等的 == 和 !=的优先级比其他的低,连续的关系运算符时从左到右进行的。

例如

#include<stdio.h>
int main()
{
	printf("%d\n", 5>3 == 2>1);
	printf("%d", 6 > 5 > 4);

	return 0;
}

结果

1
0
C:\Users\86132\Desktop\C语言\判断与循环\x64\Debug\判断与循环.exe (进程 17244)已退出,代码为 0。
按任意键关闭此窗口. . .

五:if else语句
if else后面可以没有”{}“,而是一条语句。但是为什么强调if和else后面要加{}?

是为了强调语句的执行,不加大括号, 默认执行if()后面的第一条语句或者else后面的第一条语句。如果就是只有一条语句,那不加也没关系。如果有多条语句要执行,那这些语句必须包含在大括号里面。

例如

#include<stdio.h>
int main()
{
	int price = 0;
	int bill = 0;

	printf("请输入金额:");
	scanf_s("%d", &price);

	printf("请输入票面:");
	scanf_s("%d", &bill);

	if (bill > price) {
		printf("找您%d元", bill - price);
	}else { printf("你的钱不够"); }
	
return 0;
}

结果

请输入金额:1
请输入票面:200
找您199元
C:\Users\86132\Desktop\C语言\判断与循环\x64\Debug\判断与循环.exe (进程 23800)已退出,代码为 0

循环

一:什么是循环

f语句可以判断条件是否满足,满足时才做相应的动作,而循环语句可以在满足条件时,不断地重复执行一些动作.
重复执行的语句(循环语句)可以多次执行其他语句,它检查一个逻辑条件是否满足,只在满足的时候执行它的循环体。

二:while语句

while语句是一个循环语句,它会首先判断一个条件是否满足,如果条件满足,则执行后面紧跟着的语句或语句括号,然后再次判断条件是否满足,如果条件满足则再次执行,直到条件不满足为止。后面紧跟的语句或语句括号,就是循环体。

例如:

#include<stdio.h>
int main()
{
	int x;
	int n=0;

	printf("请输入一个数:");
	scanf_s("%d", &x);

	while(x>0)
	{
		n += 1;
		x /= 10;
		printf("x=%d n=%d\n", x, n);
	}
	printf("位数为%d", n);

	return 0;
}

结果·

请输入一个数:320
x=32 n=1
x=3 n=2
x=0 n=3
位数为3
C:\Users\86132\Desktop\C语言\判断与循环\x64\Debug\判断与循环.exe (进程 28280)已退出,代码为 0

三:do while语句

do-while循环和while循环很像,唯一的区别是我们在循环体执行结束的时候才来判断条件。也就是说,无论如何,循环都会执行至少一遍,然后再来判断条件。与while循环相同的是,条件满足时执行循环,条件不满足时结束循环。

例如

#include<stdio.h>
int main()
{
	int x;
	int n=0;

	printf("请输入一个数:");
	scanf_s("%d", &x);


	do {
		n += 1;
		x /= 10;
	}
	while (x > 0);
	printf("位数为%d", n);

	return 0;
}

结果

请输入一个数:521
位数为3
C:\Users\86132\Desktop\C语言\判断与循环\x64\Debug\判断与循环.exe (进程 27064)已退出,代码为 0

四:for循环

因为for循环不符合人类的语言逻辑,并不易于理解,因此就造成了第一次接触语言的人难以理解for循环所表达的意思。而现代程序设计理念更强调与人类语言的逻辑统一性而非编译逻辑。因此在新兴的python语言中去除了C中的for循环逻辑。C 的整体设计过于面向机器指令,C 风格的 for 语句,在面对应用开发时,细节过多,抽象不足,部分场景下易出错,易导致开发成本上升,易导致可读性差。对于精心设计的、带有抽象设计的 for 语句(包括 foreach 等),可以满足几乎所有 C 语言 for 语句的功能,并且有更好的体验、更好的可读性、更少的出错机会,甚至促使我们写出更好的性能。

例如

#include<stdio.h>
int main()
{
	int x;
	int fact = 1;

	printf("请输入一个数:");
	scanf_s("%d",&x);

	int i = 1;
	for (i = 1; i <= x; i++) { fact *= i; }
	printf("%d的阶乘为%d", x, fact);
	return 0;
}

结果

请输入一个数:10
10的阶乘为3628800
C:\Users\86132\Desktop\C语言\判断与循环\x64\Debug\判断与循环.exe (进程 10536)已退出,代码为 0

打字好累,多多支持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是liku不是里库

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值