gpt4 book ai didi

java - 简化 if 语句,Java

转载 作者:行者123 更新时间:2023-11-29 07:20:57 25 4
gpt4 key购买 nike

我想简化以下代码:

public static void main(String[] args) {

int c1 = Integer.parseInt(args[0]);
int c2 = Integer.parseInt(args[1]);
int c3 = Integer.parseInt(args[2]);

/* 1 */if (c2 - c1 == 0) {
/* 2 */if (c1 != c3) {
c3 += c1;
/* 4 */System.out.println(c3);
/* 5 */c3 *= c2;
/* 6 */}
}

/* 7 */if (c1 == c3)
/* 8 */if (c1 - c2 == 0)
/* 9 */{
c3 += c1;
/* 10 */System.out.println(c3);
/* 11 */c3 *= c1;
/* 12 */if (c1 < c2)
c2 += 7;
/* 13 */else
c2 += 5;
/* 14 */}

/* 15 */System.out.println(c1 + c2 + c3);
}

第一个c2 - c1 == 0c2 == c1相同和 c1 - c2 == 0c1 == c2相同.此外,我可以删除 if (c1 < c2)并保留else语句的内容。

结果:

public static void main(String[] args) {

int c1 = Integer.parseInt(args[0]);
int c2 = Integer.parseInt(args[1]);
int c3 = Integer.parseInt(args[2]);

/* 1 */if (c1 == c2) {
/* 2 */if (c1 != c3) {
c3 += c1;
/* 4 */System.out.println(c3);
/* 5 */c3 *= c2;
/* 6 */}
}

/* 7 */if (c1 == c3)
/* 8 */if (c1 == c2)
/* 9 */{
c3 += c1;
/* 10 */System.out.println(c3);
/* 11 */c3 *= c1;

c2 += 5;
/* 14 */}

System.out.println(c1 + c2 + c3);
}

我的问题是现在可以简化什么?如果内部 if 位于外部,我可以简化 if。你怎么看?

最佳答案

警告:我假设您的第二版代码是正确的,即您的初始简化是正确的。

if 语句的困惑可以简化为:

if (c1 == c2) {
c3 += c1;
System.out.println(c3);
if (c1 != c3) {
c3 *= c2;
} else {
c2 += 5;
c3 *= c1;
}
}

使用你的 /* line numbers/* 作为引用点,这就是我简化的:

  • 分解出 1 和 8 中的共同条件
  • 分解出围绕 4 和 10 的公共(public)代码。

关于java - 简化 if 语句,Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4579466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com