这行c程序怎么回事,求大佬指教
1个回答
展开全部
if(真或假) 如果是真,执行; else 如果是假,执行;
括号内的内容也可以是数字,非零为真,零为假。
continue是跳过当前循环的剩下内容,直接下一次循环
i%2是i除以2的余数
i%3是i除以3的余数
||是或运算:每个数的二进制位中有1的结果相应的二进制位就是1,在这里的(i%2||i%3)等同于(i%2!=0||i%3!=0)。
有程序验证:
#include<stdio.h>
int i;
int main()
{
for(i=-100;i<=100;i++)
if(i%2!=0||i%3!=0)
if(i%2||i%3)
printf("a");//都满足
else printf("b");//满足第一个不满足第二个
else
if(i%2||i%3)
printf("b");//满足第二个不满足第一个
else printf("c");//都不满足
return 0;
}
输出如下:
aaaacaaaaacaaaaacaaaaacaaaaacaaaaacaaaaacaaaaacaaaaacaaaaacaaaaacaaaaacaaaaacaaa
aacaaaaacaaaaacaaaaacaaaaacaaaaacaaaaacaaaaacaaaaacaaaaacaaaaacaaaaacaaaaacaaaaa
caaaaacaaaaacaaaaacaaaaacaaaaacaaaaacaaaa
显然没有"b"
所以(i%2||i%3)等同于(i%2!=0||i%3!=0)是正确的。
(i%2||i%3)就是“i除以2的余数和i除以3的余数都不等于0”是否成立,成立返回真,不成立返回假。(也可以从程序输出中看出)
括号内的内容也可以是数字,非零为真,零为假。
continue是跳过当前循环的剩下内容,直接下一次循环
i%2是i除以2的余数
i%3是i除以3的余数
||是或运算:每个数的二进制位中有1的结果相应的二进制位就是1,在这里的(i%2||i%3)等同于(i%2!=0||i%3!=0)。
有程序验证:
#include<stdio.h>
int i;
int main()
{
for(i=-100;i<=100;i++)
if(i%2!=0||i%3!=0)
if(i%2||i%3)
printf("a");//都满足
else printf("b");//满足第一个不满足第二个
else
if(i%2||i%3)
printf("b");//满足第二个不满足第一个
else printf("c");//都不满足
return 0;
}
输出如下:
aaaacaaaaacaaaaacaaaaacaaaaacaaaaacaaaaacaaaaacaaaaacaaaaacaaaaacaaaaacaaaaacaaa
aacaaaaacaaaaacaaaaacaaaaacaaaaacaaaaacaaaaacaaaaacaaaaacaaaaacaaaaacaaaaacaaaaa
caaaaacaaaaacaaaaacaaaaacaaaaacaaaaacaaaa
显然没有"b"
所以(i%2||i%3)等同于(i%2!=0||i%3!=0)是正确的。
(i%2||i%3)就是“i除以2的余数和i除以3的余数都不等于0”是否成立,成立返回真,不成立返回假。(也可以从程序输出中看出)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询