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

一、问题现象

复制代码
1
2
3
4
5
6
7
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三目运算符内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部