如果声明涉及2d数组值java

时间:2013-03-24 03:16:16

标签: java arrays if-statement

这是我遇到问题的代码。我需要能够阻止数组超过值255.我坚持认为应该如何构造这个if语句..帮助会很棒......

public short[][] Brighten(short[][] original){

    short[][] result1 = new short[original.length][original[0].length];

    for(int i =0;i< result1.length; ++i){
        for(int j = 0;j<result1[0].length;++j){
            result1[i][j] = (short) (20 + original[i][j]);
            //work on this if statement
            if (original[i][j]> 255){
               result1[i][j] = (short)(20 - original[i][j]);
            }

        }
    }   



    return result1;
}

2 个答案:

答案 0 :(得分:1)

我认为应该是这样的

public short[][] Brighten(short[][] original){

    short[][] result1 = new short[original.length][original[0].length];

    for(int row =0;row< result1.length; row++){
        for(int col = 0;col<result1[row].length;col++){
        if (original[col][row] + 20) < 255) {
            result1[col][row] = original[col][row] +20;
        } else {
            result1[col][row] = 255;
        }         

        }
    }   
    return result1;
}

使用此代码,如果变亮后的值(+20)小于255,则首先检查原始值,然后将设置添加到结果中,但如果变亮结果大于255,则将其设置为255作为最大值

如果您有任何问题可以在评论中随意提出,我希望您理解我的答案:)

答案 1 :(得分:0)

for ( int i = 0; i < result1.length; i++ ) {

    for ( int j = 0; j < result1[0].length; j++ ) {

        if ( original[i][j] + 20 < 255 ) {
            result1[i][j] = original[i][j] + 20;
        } else {
            result1[i][j] = 255;
        }
    }
}