gpt4 book ai didi

java - Java for 循环中的 if 语句

转载 作者:行者123 更新时间:2023-11-30 02:46:42 24 4
gpt4 key购买 nike

我是 Java 新手,正在尝试做一些琐碎的事情和练习,不过我遇到了这个问题,我希望当输出达到 1 或 0 时“ducks”这个词是单数,这是我的代码:

public class FiveLittleDucks {

public static void main(String[] args) {

String word = "";

System.out.println("The story of the 5 little ducks");
for(int duck = 5 ; duck>0 ; duck--) {
if(duck == 1 || duck == 0) {
word = "duck";
} else {
word = "ducks";
}
System.out.printf("%d little %s went out one day, over the hills and far away, mother duck said quack, quack, quack, quack", duck, word);
System.out.printf(" but only %d little %s went back\n", duck-1, word);
}
}
}

这是输出:五只小鸭子的故事

有一天,5只小鸭子出去了,翻山越岭,走得很远,鸭妈妈嘎嘎嘎嘎,只有4只小鸭子回来了

有一天,四只小鸭子出去了,翻山越岭,鸭妈妈嘎嘎嘎嘎,只有三只小鸭子回来了

有一天,三只小鸭子出去了,翻山越岭,鸭妈妈嘎嘎嘎嘎,只有两只小鸭子回来了

有一天,两只小鸭子出去了,翻山越岭,走得很远,鸭妈妈嘎嘎嘎嘎,嘎嘎嘎嘎,只有1只小鸭子回来了

有一天,1只小鸭子出去了,翻山越岭,鸭妈妈嘎嘎嘎嘎,却只有0只小鸭子回来了

注意“1小鸭子”仍然是复数形式,而底线已经是单数形式..谢谢大家..

最佳答案

循环的每次迭代都会打印两行 - 一行显示 duck 的当前计数器,另一行显示 duck-1。但是,您根据 duckword 分配一个值,因此当 duck 为 2 时,单词为 “ducks”,即使 duck-1 是 1。解决这个问题的一种方法是从循环中提取单词的计算并单独评估它:

public static void main(String[] args) {
System.out.println("The story of the 5 little ducks");
for(int duck = 5 ; duck>0 ; duck--) {
System.out.printf("%d little %s went out one day, over the hills and far away, mother duck said quack, quack, quack, quack", duck, ducksToWord(duck));
System.out.printf(" but only %d little %s went back\n", duck-1, ducksToWord(duck-1));
}
}

private static String ducksToWord(int duck) {
if (duck == 1 || duck == 0) {
return "duck";
}
return "ducks";
}

关于java - Java for 循环中的 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40026828/

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