在for循环中的if语句中感到困惑

时间:2017-11-10 17:23:48

标签: for-loop if-statement

我是编码的新手,希望有人可以为我阐明这一点。我理解for循环是如何工作的(我认为)。 我的问题是关于这个If语句。我只是对If语句中的条件感到困惑。如何条件“someNums [b]>如果someNums [b + 1]总是比someNums [b]多1个,那么someNums [b + 1]“会评价为真吗?

我觉得有点失落,所以任何帮助都会非常感激!!此外,此代码与冒泡排序有关。

for(b = 0; b < someNums.length - 1 ; ++b)
{
  if(someNums[b] > someNums[b + 1])
  {
    temp = someNums[b];
    someNums[b] = someNums[b + 1];
    someNums[b + 1] = temp;
  }
}

4 个答案:

答案 0 :(得分:0)

someNums[b+1]不大于someNums[b]。索引是1,但是(例如)在的情况下 someNums = [1,2,3,1], b = 2someNums[b]为3,someNums[b+1]为1。

答案 1 :(得分:0)

someNums这里的数组可能像[5,4,3,2,1],如果someNums [0]&gt; someNums [1],你比较索引0和1的数字你做得很好然后你交换这两个数字。不要将someNums [0]与某些小于someNums [1]的值混淆,它们实际上会告诉数组中值的位置。

答案 2 :(得分:0)

我假设someNums是一个数组。 在这种情况下,[]内的字符指的是所述数组的第n个元素。 例如:

int someNumbs[4] = {3, 8, 5, 1};

printf("%d", someNumbs[2]);
printf("\n\n--------");

return 0;

这将显示'5'。 如您所见,第3个元素的值大于第4个元素,尽管后者具有更大的索引。

答案 3 :(得分:0)

你需要在someNums作为收件人思考,让我们说一个抽屉柜,你有抽屉。

每个抽屉都由他的索引调用,但是从零而不是1开始(所以someNums[2]第三个抽屉)。

每个抽屉里都有东西...... 因此,比较someNums[b]someNums[b+1],您正在检查两个相邻抽屉内的东西[: