gpt4 book ai didi

java - if-else 和 switch 语句的替代方案

转载 作者:太空狗 更新时间:2023-10-29 22:58:56 24 4
gpt4 key购买 nike

我在 Java 中有以下代码:

public void doSomething(int i) {
if (i == 12) {
// order should be same
up();
left();
stop();
}
if (i == 304) {
// order should be same
right();
up();
stop();
}
if (i == 962) {
// order should be same
down();
left();
up();
stop();
}
}
// similar code can be done using switch case statements.
// all the function can have any functionality and might not resemble to the name given to them.

现在,如果我被要求不要使用 if-else 和 switch case 语句,那么我该怎么办?代码可以用 Java 或 JavaScript 完成。

最佳答案

如果可以使用 JavaScript,则可以使用具有函数的对象:

function doSomething(i) {
var obj = {};

obj[12] = function () {
// order should be same
up();
left();
stop();
};
obj[304] = function () {
// order should be same
right();
up();
stop();
};
obj[962] = function () {
// order should be same
down();
left();
up();
stop();
};

// apparently we can't use any conditional statements
try {
obj[i]();
} catch (e) {}
}

如果只允许 ifswitch 语句,则将所有 if 语句替换为逻辑 AND 运算符(&& ):

function doSomething(i) {
(i == 12) && (
// order should be same
up(),
left(),
stop()
);

(i == 304) && (
// order should be same
right(),
up(),
stop()
);

(i == 962) && (
// order should be same
down(),
left(),
up(),
stop()
);
}

关于java - if-else 和 switch 语句的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22953136/

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