美文网首页
if if 和 if else 条件语句一点自己的错误经历

if if 和 if else 条件语句一点自己的错误经历

作者: 民谣程序员 | 来源:发表于2016-08-01 11:04 被阅读576次

今天在练习算法时,有一个用二分法查找一个从上之下递增、从左至右递增的二维数组里是否有某一个数,写出传入一个这样的数组和一个数字判断是否这个数字在这个数组的函数。

好啦,相信有不少人做过这个题目。思路就是从左下角开始判断,如果目标数小,就向上走一格(因为上面的比下面小),如果目标数大,就向右走一格(因为右边比左边大)。这个思路一出,我顿时自信满满才思泉涌,蹭蹭写好点击提交,总是报错。如下是我一开始写的代码

public class Solution {
    public boolean Find(int [][] array,int target) {
        int m = array.length;
        int n = array[0].length;
        int x = m-1,y = 0;
        while(x>=0 && y < n){
            
            if (target < array[x][y]){
                x--;
            }
            
            if (target > array[x][y]){
                y++;
            }
            
            if (target == array[x][y]) {
                return true;
            }
        }
        
        return false;
            
  
    }
}

报错因为下标越界了

我愣是皱眉查看代码三分钟,没有看出来为什么。后来搜一搜大家的答案,才恍然大悟
原来应该这样写

public class Solution {
    public boolean Find(int [][] array,int target) {
        int m = array.length;
        int n = array[0].length;
        int x = m-1,y = 0;
        while(x>=0 && y < n){
            
            if (target < array[x][y]){
                x--;
            }
            
            else if (target > array[x][y]){
                y++;
            }
            
            else {
                return true;
            }
        }
        
        return false;
            
  
    }
}

其实答案跟我的思路是一样的,但是在条件语句上由于我的轻慢态度忽视了这个小小的if esle,那么 if if 和 if else 有什么不同呢

原来用 if if的话,每一个if 条件语句都要跑一遍,如果我走完第一个if 符合条件x减小了1,我还要在第二个if 里使用x再判断一遍,这样就不是初始的x 值了。

而用 if else 表示如果第一个 if 条件成立走完第一个if的代码块,后面就不用看了。这就是最显著的区别。

经过这次不能小瞧if else 和 if if 条件语句啊。

相关文章

  • if if 和 if else 条件语句一点自己的错误经历

    今天在练习算法时,有一个用二分法查找一个从上之下递增、从左至右递增的二维数组里是否有某一个数,写出传入一个这样的数...

  • Javascript 基础:语句

    1.条件语句 if(条件){语句}if(条件){语句1}else{语句2}if(条件){语句1}else if(条...

  • 语句

    条件语句 if (条件){语句1}else{语句2} if (条件){语句1}else if(条件2){语句2}e...

  • 6、PHP语句

    IF...Else语句 if(条件){ 语句一;}else{语句二;} 和j中一样的,如果条件成立,执行语句一,不...

  • Java流程控制

    一、条件语句 if 条件语句 1.简单地if条件语句 2.if …else语句 3.if…else if语句 sw...

  • JavaScript 多重条件判断语句

    if语句 语法三:if(条件表达式){语句...}else if(条件表达式){语句...}else if(条件表...

  • Java 语句结构

    条件语句 单if语句: if...else语句 if...else if...else 语句if 语句后面可以跟 ...

  • typescript笔记(三)

    一、条件语句:if语句、if...else语句、if...else if...else语句、switch语句; 1...

  • oracle中的控制语句

    oracle中的控制语句 一、条件语句 条件语句包含if else、case when 1.01、if else ...

  • 分支语句,循环语句,continue break

    分支语句if else 格式一 if(条件) 单行语句; else 单行语句; 格式二 if(条件){ 多行语...

网友评论

      本文标题:if if 和 if else 条件语句一点自己的错误经历

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