求解一个逻辑运算符“?”的问题

程序如下

 for (int i = 0; N > 0 ? (i < N) : true; i++)

想知道这个循环的判断条件到底应该怎么解释

循环开始判断N是否大于0

                  如果N大于0则使用括号内的判断i<N如果i<N则进行下一次循环如果不小于N则终止循环

                  如果N不大于0则循环条件为true 进行下一次循环

N > 0 ? (i < N) : true;这个叫条件运算符 也叫三目运算符 有三个给定值参与运算
实现?前面需要给一个布尔值
  当?前边的等式输出为真时 语句输出 :前边的等式结果 

         当?前边的等式输出为假时 语句输出 :  后边的等式结果

就相当于if else的简化版

如 N > 0 ? (i < N) : true

就相当于

if(N>0){

    i<N

}

else{

   true

}

 

你不应该先告诉我们N是啥子东西么

满足 N<=0或者i<N的时候执行循环体

 for (int i = 0; N > 0 ? (i < N) : true; i++)

如果 N > 0, 那么就用 (i < N), 这个循环走 N 次。 

如果 N <= 0, 那么就用 true, 这个循环不停止,除非在循环体内有 break;return; 之类的控制语句。 

好的,谢谢大家