简单介绍 && 和 ||

简单介绍 && 和 ||

1.&& 和 || 是逻辑运算符,分别是逻辑与(&&)和逻辑或(||)

1) && (逻辑与):(三种)

① 当逻辑与左边为false(假),则不再进行逻辑与右边的判断,结果为false(假)
② 当逻辑与左边为true(真)则进行右边判断,右边为false(假),结果为false(假)
③ 当逻辑与左边为true(真)则进行右边判断,右边也为true(真),则结果为true(真)

2) || (逻辑或):(三种)

① 当逻辑或左边为false(假),继续逻辑或右边的判断,如果也为false(假),结果为false(假)
② 当逻辑或左边为false(假),继续逻辑或右边的判断,如果为true(真),结果为true(真)
③ 当逻辑或左边为true(真),则不再进行逻辑或右边的判断,结果为true(真)

2. && 和 || 的使用

1) && (逻辑与)

下面通过一个程序进行讲解:

#include <stdio.h>
#include <string.h> // strcmp所在头文件
int main(void) 
{
	char szAccount[] = "account";    // 设置的默认账号
	char szPassword[] = "password";  // 设置的默认密码
	char szInputAccount[32] = { 0 };  // 输入的账号
	char szInputPassword[32] = { 0 }; // 输入的密码
// 获取输入的账号
	printf("请输入账号: ");
	scanf_s("%s", szInputAccount, 32);
	 
	// 获取输入的密码
	printf("请输入密码: ");
	scanf_s("%s", szInputPassword, 32);
	 
	// 通过strcmp函数进行比较输入的账号和密码是否跟我们设置的匹配 
	// 通过 &&(逻辑与) 进行判断,当账号和密码都正确才会打印出 "账号密码正确!"
	if (strcmp(szInputAccount, szAccount) == 0 &&
	    strcmp(szInputPassword, szPassword) == 0) {
		printf("账号密码正确!");
	}
	else {
		printf("账号或密码错误!");
	}
	return 0;
}

简单简介上面的程序:
定义了一个char(字符型)的数组变量szAccount,并且初始化为 “account”
定义了一个char(字符型)的数组变量szPassword,并且初始化为 “password”
定义了一个char(字符型)的数组变量szInputAccount,并将数组中的每个元素都初始化为0
定义了一个char(字符型)的数组变量szInputPassword,并将数组中的每个元素都初始化为0
printf 打印一条提示信息,提示用户输入账号
scanf_s 获取用户输入的数据,然后保存到对应的变量中,此处为szInputAccount
printf 打印一条提示用户输入密码
scanf_s 获取用户输入的数据,然后保存到对应的变量中,此处为szInputPassword
strcmp函数是比较两个传入的字符串,如果两个字符串是相同的则返回0(strcmp百度百科)
然后通过 &&(逻辑与)进行比较输入的账号和密码与默认设置的账号和密码比较,如果都相同则打印 “账号密码正确!”,如果有其中一个不正确则打印 “账号或密码错误!”

2) || (逻辑或)

下面通过一个程序进行讲解:

#include <stdio.h>

int main(void)
{
	char c;
	char c1;

	do {
		/**
		* 进行输入账号和密码的操作和判断
		**/
	 
		// 此处只是为了清空输入缓冲区
		while ((c1 = getchar()) != EOF && c1 != '\n') {}
	 
		// 密码错误进行是否继续输入进行匹配
		printf("是否继续匹配,继续匹配请输入(y或者Y)\n");
		c = getchar();
	} while ('y' == c || 'Y' == c);
	 
	return 0;

}

简单讲解上面程序:
定义了一个char(字符型)变量c
定义了一个char(字符型)变量c1
do…while循环不断进行账号密码的判断操作
while循环是为了清空输入缓冲区,因为不清空输入缓冲区的内容,下面的getchar就会获取不确定的内容
最后通过||(逻辑或)判断是否继续输入,如果输入的是 ‘y’ 或者 ‘Y’ 都将继续进行循环输入匹配

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值