关于C程序if括号里为什么只是一个变量

#include<stdio.h>#include<string.h>#include<ctype.h>main(){inti;inthasUpper,hasLower,... #include <stdio.h>
#include <string.h>
#include <ctype.h>

main()
{
int i;
int hasUpper, hasLower, hasDigit;
char user[25], password[25];

hasUpper = hasLower = hasDigit = 0;

printf("用户名");
scanf(" %s", user);

printf("密码");
scanf(" %s",password);

for (i = 0; i < strlen(password); i++)
{
if (isdigit(password[i]))
{
hasDigit = 1;
continue;
}
if (isupper(password[i]))
{
hasUpper = 1;
continue;
}
if (islower(password[i]))
{
hasLower = 1;
}
}

if ((hasDigit ) && (hasLower ) && (hasUpper ))
{
printf("你输入的密码正确\n");
printf(" %d,%d,%d.", hasUpper, hasLower, hasDigit);
}
else
{
printf("你输入的密码错误\n");
printf(" %d,%d,%d.", hasUpper, hasLower, hasDigit);
}

return 0;

}

我是一个新手,想知道,为什么if后面是三个变量,不是三个判断式,还有上面三个初始化变量为0 是什么意思?
展开
 我来答
terranlong
2014-06-06 · TA获得超过7293个赞
知道大有可为答主
回答量:2660
采纳率:0%
帮助的人:3953万
展开全部
if (hasDigit) 其实就相当于 if (hasDigit != 0),也就是说判断hasDigit是否为非0,非0时成立,0时不成立
追问
那如果我不为1的话是不是必须写成 hasDigit != 1,能简略写吗?
追答
不为1就必须写成 hasDigit != 1

if (hasDigit) 只能判断是否非0
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式