作业帮 > 数学 > 作业

if语句的if(leap)为什么不写成if(leap==1)

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/07/15 01:16:12
if语句的if(leap)为什么不写成if(leap==1)
if(leap) 这样判断会被自动转化成一个Boolean量来进行流程的控制,会转化成 true and false 两个量
而你说的leap == 1 则只是单纯的恒值的比较.
简单的来说,如果leap = 5,在if(leap){} 这个式子中是成立的,为true而在if( leap == 1){} 则是为假的.
写程序思维要求比较严谨.
再问: 例如这个程序: #include main() { int year,leap; printf("please input year:"); scanf("%d",&year); if(year%4==0) { if(year%100==0) { if(year%400==0) leap=1; else leap=0; }else leap=1; }else leap=0; if(leap) printf("%d is a leap year",year); else printf("%d is not a leap year",year); } 里面的1改为任何非0值,程序都会照常进行这是为什么