java - 如何将这两个 while 语句合并为一个?

标签 java while-loop

我有两个 while 循环,其中一个循环取 50 到 100 之间的奇数,另一个循环取 50 到 100 之间的偶数。它打印得很好并且有效,但我的教授希望我进行转换它进入一个 while 循环而不是两个。我遇到了麻烦,因为我之前按顺序使用了 print 语句,因此它适合数字输入。

 int e = 50;
 int o = 51;
 System.out.print("Even numbers between 50 and 100: 50,");
 while (e <= 98){
     e += 2;
     if (e%2 == 0){
        System.out.print(e + ",");
     }
 }
 System.out.print("\nOdd numbers between 50 and 100: 51,");
 while (o <= 97){
     o+= 2;

     if (e%1 == 0) { 
         System.out.print(o + ",");
     }
}


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,

现在的输出看起来像这样,但我需要能够只用一个循环来完成

最佳答案

如果您只需要一个 while 循环和单独的行,您应该构建字符串并在之后打印它们。 像这样的东西:

StringBuilder odds = new StringBuilder();
StringBuilder evens = new StringBuilder();
i = 50;
while(i<100) {
    if(i%2 == 1) {
        odds.append(i).append(",");
    }
    else {
        evens.append(i).append(",");
    }
    i++;
}
// remember that odds and evens now probably ends with a ','which you should remove
odds.removeCharAt(odds.size());
evens.removeCharAt(evens.size());
// or do something like the following:
//odds.append(" and nothing more!");
//evens.append(" and nothing more!");

System.out.println("Odd numbers are: ");
System.out.println(odds);
System.out.println("Even numbers are" ");
System.out.println(evens)

关于java - 如何将这两个 while 语句合并为一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39661526/

相关文章:

java - 在编译时或运行时编程

javascript - while 循环内的 if 语句。它为什么要这样做?

php - While 循环正在进行无限循环

c++ - 有人可以解释这个 while 循环中的错误吗?

java - Map Reduce输出文件为空

java - ojdbc8 用于故障转移的 DB_URL

java - 如何从 java jar 创建 windows 服务?

java - 获取列以拉伸(stretch)表格的整个宽度

c - While 循环不适用于 C 中的 bool 语句(初学者!)

php - 使用 while 时 PHP 中的 MySql_fetch_array() 错误