美文网首页
java 逻辑与 && 执行顺序

java 逻辑与 && 执行顺序

作者: Vector_Wan | 来源:发表于2021-05-23 13:25 被阅读0次

这是我在写使用递归的方法实现插入排序遇到的问题,我最开始写的代码是:

static void insertSort(int[] arr, int k) {
    // k 是索引
    if (k==1){
        return;
    }
    // 对前面的 k-1 个元素进行排序
    insertSort(arr, k-1);
    // 将位置 k-1 的元素插入到 排序好的部分
    int currentValue = arr[k];
    int index = k-1;
    while (arr[index]>currentValue && index>-1) {
        arr[index+1] = arr[index];
        index--;
    }
    arr[index+1] = currentValue;
}
int[] myList = {2, 97, 31, 87, 13, 91, 42, 82, 94, 91};
int[] myList = {68, 71, 52, 33, 46, 19, 66, 64, 98, 51};

最开始我使用的是上面的数组运行是可以正确排序的,后来我使用下面的数组就出现了问题。

总是在 while 语句的地方报数组越界错误,并且 IDE 提示 index>-1 条件始终满足。

我最开始以为是 while 循环内部逻辑的问题,后来发现应该是逻辑与 && 执行顺序的问题。

Java A&&B 语句,首先执行 A ,如果 A 是 False,则不再执行 B。所以在上面的代码中,会先检查 arr[index] ,如果此时 index 已经越界就会出现错误,只需要把对 index 的检查放到前面就可以了。

所以在使用 && 的时候一定要注意执行顺序的问题,或者在 while 循环里面加一个 if-break 也是可以帮助我们注意这个顺序问题的。

相关文章

  • java 逻辑与 && 执行顺序

    这是我在写使用递归的方法实现插入排序遇到的问题,我最开始写的代码是: 最开始我使用的是上面的数组运行是可以正确排序...

  • Java执行顺序

    父类B静态代码块->子类A静态代码块->父类B非静态代码块->父类B构造函数->子类A非静态代码块->子类A构造函...

  • Java执行顺序

    通过一个例子了解Java中子父类各方法执行顺序: public class Sequence { public s...

  • java程序执行顺序

    Java 类中代码的执行顺序深入了解Java程序执行顺序 单个类: static变量—>Static代码块—> m...

  • Java程序的顺序问题

    一、Java中的执行顺序 二、Java中的赋值顺序 一、Java中的执行顺序 1.静态块2.块3.构造器4.父类构...

  • 三分钟教会你Java while循环中嵌套if

    [java的三种循环结构与循环嵌套] 循环结构: 语法,及执行顺序 语法: 执行顺序: 1断小括号中的值是否为tr...

  • js事件轮询机制

    这段代码的执行顺序,根据执行顺序分析、JS事件轮询原理 执行逻辑 从代码执行角度来看 首先分析同步代码、在面的代码...

  • Java基础

    零碎 标识符 关键字 运算符号 逻辑运算符 执行顺序& if else & switch 顺序执行 分支执行 循环...

  • go语言错误处理

    1.panic与recover用法 答:defer 是后进先出执行顺序,类似“栈”数据结构处理逻辑;代码执行到pa...

  • Java代码执行顺序

    AVA是一门面向对象的编程语言,这里考虑“类”里面在程序开始执行时的执行顺序。先看一个实例: 执行结果: 说明:一...

网友评论

      本文标题:java 逻辑与 && 执行顺序

      本文链接:https://www.haomeiwen.com/subject/hrtzjltx.html