IF语句后面的!有啥用,请大佬点拨一下
#include <stdio.h>int main()
{
char ch = "FishC";
int i;
printf("请输入你想访问的字符序号(0~5):");
scanf("%d", &i);
if (!(i >= 0 && i <= 5 && printf("%c\n", ch)))
{
printf("非法访问!\n");
}
return 0;
}
————————————————
IF语句里的!为啥这么用?我把IF后面的!删掉后程序好像还是可以正常执行。有没有大佬可以给我解下惑,感谢感谢。 没啥太大意义,就是炫(显摆)而已 if()里的应该用了“短路”的知识就是说例如(a=0)&&(a=3);运行完这个语句后a还是等于0因为运行完a=0后,整个语句的值就一定为假也就是0了(你应该知道&&的作用吧),所以a=3这个表达式就不会继续执行了。你可以根据我说的先独立思考下,如果还不明白我可以直接在你本来的程序上讲下。
最后,如果满意的话给个最佳啊亲{:5_104:}
删掉后还可以正确运行?现在电脑也没在身边不方便,能不能说下具体删了什么。 王之叹息 发表于 2021-5-26 11:11
删掉后还可以正确运行?现在电脑也没在身边不方便,能不能说下具体删了什么。
就是把那个IF里的感叹号!删去之后还能完成程序,并且程序的基本功能好像也可以。0~5输出具体字符,输入超出0~5边界显示输入错误。 SmoothCriminal2021-5-26 11:15
IF0~5 ...
045
本帖最后由 王之叹息 于 2021-5-26 11:44 编辑
SmoothCriminal 发表于 2021-5-26 11:15
就是把那个IF里的感叹号!删去之后还能完成程序,并且程序的基本功能好像也可以。0~5输出具体字符,输入 ...
那个发错了,看这个
哦哦,抱歉抱歉,一开始没看清问题,但是你确定?
如果把!去掉的话按道理来说应该是输入0~4既显示字符又显示非法访问,输入5只显示非法访问,输入其他啥都没有啊,要不你再确定下?
你可以先试着把if括号里的printf先忽略思考试试 新手一枚发表下自己的看法希望对你有帮助
if语句里面的意思是给你定义的I限定一个区间 0<=i<=5,
超出区间里面的会执行if语句 打印非法访问
删掉if后面的并不影响主程序的运行 但是在输入超出区间的数之后 程序不会提醒 王之叹息 发表于 2021-5-26 11:32
那个发错了,看这个
哦哦,抱歉抱歉,一开始没看清问题,但是你确定?
如果把!去掉的话按道理来说应 ...
哦哦哦,的确 删去之后是既显示字符又显示非法访问。太感谢了!谢谢 谢谢
页:
[1]