我是靠谱客的博主 温柔哑铃,最近开发中收集的这篇文章主要介绍关于java三目运算符?(表达式1):(表达式2)一、问题现象二、问题原因分析,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、问题现象

int[] num1 = {2,0},num2 = {1};
i = 0,j=0,end=1;
while(j>=0){
      // nums1[end--] = (i>=0 && nums2[j] > nums1[i])?nums2[j--]:nums1[i--]; // 有问题的代码 ①
     nums1[end--] = (i>=0 && nums1[i] > nums2[j])?nums1[i--]:nums2[j--];  // ②
}

如果使用注释的代码行,会出现数组越界的异常报错;

二、问题原因分析

while循环中两行代码对比:

  • 相同点
    (1)两行代码的实现的功能其实是一样的;
    (2)第一次循环后的i一定会变成-1;
  • 不同点
    (1)第二次循环三目运算符的取值导致数组越界;

其实,仔细分析才深切体会到,三目运算的判断条件判断主体不同(> 运算符左边为主,右边为次),会直接影响后面 : 的选择,正是因为这点,i 变成-1后,括号中 (i>=0 && nums1[i] > nums2[j]) 中直接变成false,也就需要保证不能取mums1[i–];

最后

以上就是温柔哑铃为你收集整理的关于java三目运算符?(表达式1):(表达式2)一、问题现象二、问题原因分析的全部内容,希望文章能够帮你解决关于java三目运算符?(表达式1):(表达式2)一、问题现象二、问题原因分析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部