条件语句及返回值问题

今天在使用VS2012学习游戏制作的时候遇见一个很奇怪的问题,请教一下各位大大:
1、如图一:我自己定义了一个返回值为int的函数 当if语句中的条件写成 0<= i <10的时候 无论我的i如何变化 返回值永远都是 1;这就和我预想的结果不一样。
当我使用 0<=i &&i<10作为条件判断的时候就能正确的执行我的想法。 这是为什么啊!!!!!!!!!!!!!
2、还有一个小问题想请教一下:我可不可以使用log()或者其他方法在输出窗口输出布尔值出来呢,如果可以应该使用什么方法呢?(比如我图1的函数返回值为布尔值 我想将这个返回结果显示在输出窗口中,那么我应该使用什么方法做呢) 之前使用的是log("%s",check())一直输出的是null

0<= i <10

我咋没见过这种写法

C++中不可以这样写么? 难道必须写成 大于等于0 并且小于10?

c c++ java 都没讲这种写法

  1. 0<= i <10 应该是相当于 (0<=i) < 10 吧,一个布尔值小于10,那不就是恒成立了么?
  2. log("%s",check()),这里的%s是对应char指针的字符串的,要对应int的话应该改成log("%d",check())

亲,看来你真是个新手!
1.(0 <= i < 10),这段语句相当于 (0<=i) < 10,(0<=i)中不论你的i值是多少,在这个条件判断语句中只可能是true(为1)或者false(为0),故 (0<=i) < 10相当于(0 or 1)< 10,这是个恒等式,永远返回true
2.bool类型其实就是0 or 1,因此log只能写成log("%d",check()) ,输出的结果非0即1,如果你觉得不直观的话可以封装一个函数,如下:
const char* checkBoolValue(bool _value)
{
if (_value)
{
return “true”;
}
else
{
return “false”;
}
}
输出log("%s",checkBoolValue(check()))

:12: 新手上路 刚学语言没多久 谢谢你的指点

:12: 亲 谢谢你啊!新手上路 有时候有点想当然了 编程语言基础不扎实 谢谢你的指导!

:10: 受教了 谢谢你!