JAVA中的if语句

JAVA中的if语句,java,if-statement,Java,If Statement,我的代码中有两个“if”语句,我该怎么做才能使一个“if”语句为真,另一个语句自动被忽略/禁用?因此您有以下几点: if(condition1){ block1; } if(condition2){ block2; }else{ block3; } 要禁用/忽略第二个if语句,您可以使用else if语句: if(condition1){ block1; } else if(condition2){ block2; }else{ block3; } 或bl

我的代码中有两个“if”语句,我该怎么做才能使一个“if”语句为真,另一个语句自动被忽略/禁用?

因此您有以下几点:

if(condition1){
   block1;
}
if(condition2){
   block2;
}else{
   block3;
}
要禁用/忽略第二个
if
语句,您可以使用
else if
语句:

if(condition1){
   block1;
} else if(condition2){
   block2;
}else{
   block3;
}
block1

if(condition1){
   block1;
   return;
}
if(condition2){
   block2;
}else{
   block3;
}
if(最大值<3)
{
p、 设置颜色(颜色为黑色);
//显示图形宽度和图形高度的值
aw=字符串的值(x1);
p、 抽绳(“图形宽度=”,740490);
p、 抽绳(aw,840490);
p、 抽绳(“图形高度=”,740510);
字符串ah=字符串的值(y1);
p、 抽绳(啊,846510);
} 
其他的
{if(minValx==-1 | | minValx==-2 | | minValx==-3){
p、 设置颜色(颜色为黑色);
//显示图形宽度和图形高度的值
aw=字符串的值(x1);
p、 抽绳(“图形宽度=”,740,90);
p、 抽绳(aw,840,90);
p、 抽绳(“图形高度=”,740110);
字符串ah=字符串的值(y1);
p、 抽绳(啊,846110);
}
否则{
p、 设置颜色(颜色为黑色);
//显示图形宽度和图形高度的值
aw=字符串的值(x1);
p、 抽绳(“图形宽度=”,50,90);
p、 抽绳(aw,150,90);
p、 抽绳(“图形高度=”,50110);
字符串ah=字符串的值(y1);
p、 抽绳(啊,156110);
}
}

至少有两个答案。一种是将return语句放在第一个
if
语句的底部。我不喜欢这样,因为这可能不是一个好的通用解决方案

另一个答案是稍微重新构造代码

首先,因为maxValX大于等于3的情况似乎不是问题所在,所以我要通过反转第一个
if
条件来解决这个问题:

    if (maxValY >= 3) {
        p.setColor(Color.black);
        //display the value of graph width and graph height
        aw = String.valueOf(x1);
        p.drawString("Graph Width = ", 50, 90);
        p.drawString(aw, 150, 90);
        p.drawString("Graph Height = ", 50, 110);
        String ah = String.valueOf(y1);
        p.drawString(ah, 156, 110);
    } else if (maxValY < 3) {
        p.setColor(Color.black);
        //display the value of graph width and graph height
        aw = String.valueOf(x1);
        p.drawString("Graph Width = ", 740, 490);
        p.drawString(aw, 840, 490);
        p.drawString("Graph Height = ", 740, 510);
        String ah = String.valueOf(y1);
        p.drawString(ah, 846, 510);
    }
    if (minValx == -1 || minValx == -2 || minValx == -3) {
        p.setColor(Color.black);
        //display the value of graph width and graph height
        aw = String.valueOf(x1);
        p.drawString("Graph Width = ", 740, 90);
        p.drawString(aw, 840, 90);
        p.drawString("Graph Height = ", 740, 110);
        String ah = String.valueOf(y1);
        p.drawString(ah, 846, 110);
    }
然后我们注意到代码块仍然几乎相同。重构

private void someName() {
    // ...
    if (maxValY >= 3) {
        q(50, 90, 510);
    } else if (maxValY < 3) {
        q(740, 490, 510);
    } else if (minValx == -1 || minValx == -2 || minValx == -3) {
        q(740, 90, 110);
    } else {
        throw new RuntimeException("This cannot possibly happen ;-)");
    }
    // ...
}

private void q(int base, int graphWidth, int graphHeight) {
    p.setColor(Color.black);
    //display the value of graph width and graph height
    aw = String.valueOf(x1);
    p.drawString("Graph Width = ", base, graphWidth);
    p.drawString(aw, base+100, graphWidth);
    p.drawString("Graph Height = ", base, graphHeight);
    String ah = String.valueOf(y1);
    p.drawString(ah, base+100+6, graphHeight);
}
private void someName(){
// ...
如果(最大值>=3){
q(50,90510);
}否则如果(最大值<3){
q(740490510);
}else if(minValx==-1 | | minValx==-2 | | minValx==-3){
q(740,90110);
}否则{
抛出新的RuntimeException(“这不可能发生;-)”;
}
// ...
}
私有空q(整数基、整数图宽、整数图高){
p、 设置颜色(颜色为黑色);
//显示图形宽度和图形高度的值
aw=字符串的值(x1);
p、 抽绳(“图形宽度=”,底部,图形宽度);
p、 抽绳(aw,底座+100,图宽);
p、 抽绳(“图形高度=”,底部,图形高度);
字符串ah=字符串的值(y1);
p、 抽绳(ah,底座+100+6,图形高度);
}

所以我们看到,除了一些常量之外,代码的三个部分基本上是相同的。通过重构它们,我们减少了必须调试的代码量。此外,我们清楚地看到了
if
语句的结构,并将逻辑与实际工作分开,这通常会产生额外的收益。

仔细阅读“else”,即如果条件为false,则执行“if”语句的一部分。我知道问题是,在某些情况下,两个“if”都陈述可以成为事实。。因此,我有两个条件,如果在同一时间做这项工作。。。您认为如何?@Matthew在转到下一个
if
之前,您可能需要使用
return
。不确定是否应该关闭此按钮。这家伙正在“到达那里”。不知道为什么这个问题结束了:一般来说,“返回”的目的是什么?我无法理解:返回的基本意思是:我完成了,不要再麻烦了:)这个解决方案解决了这个症状。@TonyEnnis我不同意。OP的问题是如何忽略第二个if语句而不是关于重新分解他的代码OP的问题是如何忽略第二个if语句而不是关于重新分解他的代码code@GETah是的。有了这个解决方案,OP就可以得到他想要的东西,使用首选的结构,希望能学到更多。初学者经常问错误的问题,这里就是这样。
    if (maxValY >= 3) {
        p.setColor(Color.black);
        //display the value of graph width and graph height
        aw = String.valueOf(x1);
        p.drawString("Graph Width = ", 50, 90);
        p.drawString(aw, 150, 90);
        p.drawString("Graph Height = ", 50, 110);
        String ah = String.valueOf(y1);
        p.drawString(ah, 156, 110);
    } else if (maxValY < 3) {
        q(491, 510);
    } else if (minValx == -1 || minValx == -2 || minValx == -3) {
        q(90, 110);
    } else {
        throw new RuntimeException("This cannot possibly happen ;-)");
    }
}

private void q(int loc1, int loc2) {
    p.setColor(Color.black);
    //display the value of graph width and graph height
    aw = String.valueOf(x1);
    p.drawString("Graph Width = ", 740, loc1);
    p.drawString(aw, 840, loc1);
    p.drawString("Graph Height = ", 740, loc2);
    String ah = String.valueOf(y1);
    p.drawString(ah, 846, loc2);
}
private void someName() {
    // ...
    if (maxValY >= 3) {
        q(50, 90, 510);
    } else if (maxValY < 3) {
        q(740, 490, 510);
    } else if (minValx == -1 || minValx == -2 || minValx == -3) {
        q(740, 90, 110);
    } else {
        throw new RuntimeException("This cannot possibly happen ;-)");
    }
    // ...
}

private void q(int base, int graphWidth, int graphHeight) {
    p.setColor(Color.black);
    //display the value of graph width and graph height
    aw = String.valueOf(x1);
    p.drawString("Graph Width = ", base, graphWidth);
    p.drawString(aw, base+100, graphWidth);
    p.drawString("Graph Height = ", base, graphHeight);
    String ah = String.valueOf(y1);
    p.drawString(ah, base+100+6, graphHeight);
}