gpt4 book ai didi

java - 我可以从解决这个 FizzBu​​zz 式问题的解决方案中消除嵌套的 if-else 吗?

转载 作者:太空宇宙 更新时间:2023-11-04 12:42:35 24 4
gpt4 key购买 nike

我需要解决以下问题。

  • 如果整数能被 3 整除,则返回字符串“Java”。
  • 如果整数能被 3 整除并且能被 4 整除,则返回字符串“咖啡”
  • 如果整数是上述之一并且是偶数,则将“Script”添加到字符串的末尾。否则,返回字符串“mocha_missing!”

示例输入和输出

  • caffeineBuzz(1) => “mocha_missing”
  • caffeineBuzz(3) => "Java"
  • caffeineBuzz(6) => "JavaScript"
  • caffeineBuzz(12) => “CoffeeScript”

我的解决方案如下:

//Class 

public class CoffieScriptGenerator {

public String caffeineBuzzz(Integer number) {

if(isDivisbleByThreeAndFour(number))
{
if(isEven(number))
return "CoffeeScript";
else
return "Coffee";
}
if(isDivisbleByThree(number))
{
if(isEven(number))
return "JavaScript";
else
return "Java";
}
return "mocha_missing!";


}

private boolean isEven(Integer number) {
return number%2==0;
}

private boolean isDivisbleByThreeAndFour(Integer number) {

return isDivisbleByThree(number) && number%4==0;
}

private boolean isDivisbleByThree(Integer number) {
return number%3==0;
}

}

请提供重构和改进它的建议,以及我如何借助“策略”等模式来改进此类嵌套 if-else。

最佳答案

解决此类问题的一个好的设计模式是从顶部的空字符串开始。然后,当您的代码向下流动并检查某些条件时,您可以将文本附加到字符串的末尾。然后,当您到达方法末尾时,您的字符串已全部构建完毕,您可以简单地返回它。

这种设计的优点是你的方法只有一个退出点(只有一个 return 语句)。

关于java - 我可以从解决这个 FizzBu​​zz 式问题的解决方案中消除嵌套的 if-else 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36686145/

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