gpt4 book ai didi

java - Java 初学者遇到的参数问题

转载 作者:行者123 更新时间:2023-12-02 06:43:17 26 4
gpt4 key购买 nike

我目前正在学习 Java,并且一直遇到参数问题。我正在尝试创建一个程序,以年龄作为输入,并根据所述年龄对人进行分类。

  • 2岁以下是婴儿
  • 4 岁以下为幼儿
  • 13岁以下为 child
  • 20岁以下为青少年
  • 35岁以下为青年
  • 65岁以下为中年
  • 100 岁以下属于老年病
  • 100 岁及以上属于古董

它需要返回一个对人进行分类的字符串。我写的是:

String getMaturityLevel(int age) {

if (age < 2)
return ("a baby");
if (age < 4)
return ("a toddler");
if (age < 13)
return ("a child");
if (age < 20)
return ("a teenager");
if (age < 35)
return ("a young adult");
if (age < 65)
return ("middle aged");
if (age < 100)
return ("geriatric");
if (age >= 100)
return ("antique");
}

它无法编译,因为它需要 return 语句。

所以我的问题是,如何有效地编写代码?我不知道如何存储结果。我尝试了不同的方法 age < 2 .

如有任何帮助,我们将不胜感激。

最佳答案

我是老派,所以我相信方法或函数只有一个入口点和导出点......

问题的本质归结为编译器无法保证任何一个 if 语句“可能”满足(你和我都知道最后一个应该满足,但编译器不会满足)不要冒这个风险)。

因此,您可以定义一个 return 变量并根据您的需要更改其值,而不是为每个条件提供一个 return,例如...

String getMaturityLevel(int age) {
String maturity = "antique";
if(age < 2)
maturity = ("a baby");
else if(age < 4)
maturity = ("a toddler");
else if(age < 13)
maturity = ("a child");
else if(age < 20)
maturity = ("a teenager");
else if(age < 35)
maturity = ("a young adult");
else if(age < 65)
maturity = ("middle aged");
else if(age < 100)
maturity = ("geriatric");

return maturity;
}

现在,在这一小段代码中,它可能没有太大区别,但是当您处理较长的方法或具有多个复合 if/loop 语句时,在任何地方都可以使用单个 return 语句代码可能会破坏你对你认为该方法正在做什么的理解...这是一个挑剔的选择,但任何能让我的生活更轻松的东西;)

我还鼓励您在 if 语句周围使用 {...},它会阻止您执行类似...的操作

else if(age < 100)
maturity = ("geriatric");
maturity = "Why is the returned value for every condition?";

关于java - Java 初学者遇到的参数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18907386/

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