C 在以下代码中,当i=0时,为什么该条件失败?
当C 在以下代码中,当i=0时,为什么该条件失败?,c,C,当i变为0时,为什么该条件失败? i++表示i从-5变为-4最初i为-5时,条件如何为真 #include <stdio.h> int main() { static int i = -5; if (i++) //why does this condition fails when it becomes 0 { printf("%d ", i);//recurtion starts main(10); } } #包括
i
变为0时,为什么该条件失败?
i++
表示i
从-5变为-4最初i
为-5时,条件如何为真
#include <stdio.h>
int main()
{
static int i = -5;
if (i++) //why does this condition fails when it becomes 0
{
printf("%d ", i);//recurtion starts
main(10);
}
}
#包括
int main()
{
静态int i=-5;
if(i++)//为什么该条件变为0时会失败
{
printf(“%d”,i);//开始重复
主要工程(10);
}
}
for循环中的
i++
和++i
之间有什么区别
当i=0时,为什么该条件失败
如果if
语句中的条件返回false(等于0),则不会执行该语句。也就是说,只有当条件返回true(或非零值)时,语句才会执行
谢谢你的提问
for循环中的i++和++i有什么区别
考虑这个循环
int i;
for ( i = 0 ; i < 5 ; i++ )
// some code
那就相当于
int i;
i = 0;
while ( i < 5 )
{
// some code
i++;
}
int i;
i = 0;
while ( i < 5 )
{
// some code
++i;
}
inti;
i=0;
而(i<5)
{
//一些代码
++一,;
}
因此,正如您所看到的,
i++
或++i
是最后执行的,因此简言之,如果我正确理解您的问题,那么Arun A.S回答正确,两个for循环的工作原理相同。如果“If”语句返回0,则执行将停止。这是您应该使用的代码
#include <stdio.h>
int main()
{
static int i = -5;
if (i<10)
{
++i;
printf("%d ", i);//recurtion starts
main(10);
}
}
#包括
int main()
{
静态int i=-5;
if(iintegral)值隐式转换为bool,0表示false,所有其他值表示true。此外,由于调用main,程序的格式不正确,因此没有理由在main()
中创建变量static
。
int i;
for ( i = 0 ; i < 5 ; ++i )
// some code
int i;
i = 0;
while ( i < 5 )
{
// some code
++i;
}
#include <stdio.h>
int main()
{
static int i = -5;
if (i<10)
{
++i;
printf("%d ", i);//recurtion starts
main(10);
}
}
#include <stdio.h>
int recursion(int user_num){
static int i = -5;
if (i<user_num)
{
++i;
printf("%d ", i);//recurtion starts
recursion(user_num);
}
}
int main()
{ int user_num;
scanf("%d",&user_num);
recursion(user_num);
}