java - 如何组合 while 循环,以便获得与使用两个 while 循环时相同的输出?

标签 java

我要重新设计一个程序,只用一个循环来判断

every even and odd number between 50 -100.

public class Practice_6_3
{
   public static void main(String[] args)
   {
    int even = 50;
    int odd = 51;

    System.out.print ("Even numbers between 50 and 100: \t");
    while (even <= 100)
    {
        System.out.print(even + ", ");
        even += 2;
    }

    System.out.print ("\nOdd numbers between 50 and 100: \t");
    while (odd <= 100)
    {
        System.out.print(odd + ", ");
        odd += 2;
    }
    }        
}

输出是: 50 到 100 之间的偶数:

50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 

50 到 100 之间的奇数:

51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99, 

我不知道如何在保持相同输出格式的同时组合 while 循环。

最佳答案

您需要在循环中构建两个值列表,您可以使用一对 StringJoiner 来完成实例来记录您的 evenodd 值。喜欢,

public static void main(String[] args) {
    int even = 50;
    StringJoiner evens = new StringJoiner(", ");
    StringJoiner odds = new StringJoiner(", ");
    while (even <= 100) {
        evens.add(String.valueOf(even));
        if (even + 1 <= 100) {
            odds.add(String.valueOf(even + 1));
        }
        even += 2;
    }

    System.out.printf("Even numbers between 50 and 100: \t%s%n", evens);
    System.out.printf("Odd numbers between 50 and 100: \t%s%n", odds);
}

哪些输出(按要求)

Even numbers between 50 and 100:    50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100
Odd numbers between 50 and 100:     51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99

关于java - 如何组合 while 循环,以便获得与使用两个 while 循环时相同的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46635497/

相关文章:

java - 删除开关条件的干净代码(使用多态性)

JavaFX Tableview 持有两种对象

java - ModelMapper:如何根据源中的集合是否包含元素来设置目标属性

java - 在 HashMap 中查找键

java - Android ToggleButton 提供 null 对象引用

java - java EE 中的事务是什么?

java - 使用文件中的字符串的建议

java - 使用改造过帐值

java - Fluentd不解析日志的最后一行

java - JmsTemplate 与 IBM MQ 队列的 CachingConnectionFactory 连接恢复