2015-10-08 1 views
-3

En ce moment, mon code est ceje besoin d'aide turing un code avec 2 boucles dans un code avec une boucle, mais il a la même sortie

import java.text.*; 
import java.util.Scanner; 
public class Homework6_EvenOdd 
{ 
    public static void main(String[] args) 
    { 

    //Varaiable declaration 
    int even=50; 
    int odd=51; 
    //Loop logic for even 
    System.out.print("Your even numbers are "+even+", "); 
    while (even <= 99) 
    { 
    even += 2; 

    System.out.print(even + ", "); 
    } 
    System.out.println(); 

    //Loop logic for odd 
    System.out.print ("Your odd numbers are "+(odd)+", "); 
    while (odd + 1 <= 99) 
    { 
    odd += 2; 

    System.out.print(odd + ", "); 
    } 
    } 
} 

Je ne peux pas comprendre comment faire cela avec un seul boucle. Je ne sais même pas par où commencer. Je ne peux pas comprendre comment j'obtiendrais les nombres pairs et impairs à imprimer sur des lignes séparées s'il n'y a qu'une seule boucle?

+4

Encore un devoir résolu par SO ... Ce – Hannes

Répondre

0
import java.text.*; 
import java.util.Scanner; 
public class Homework6_EvenOdd 
{ 
    public static void main(String[] args){ 
    //Varaiable declaration 
    int even=50; 
    int odd=51; 
    //Loop logic for even 
    System.out.print("Your even numbers are "+even+", "); 
    while (even <= 99 || odd + 1 <= 99){ 
    if (even <= 99) { 
     even += 2; 
     System.out.print(even + ", "); 
    } 
    System.out.println(); 
    if (odd + 1 <= 99) { 
     odd += 2; 
     System.out.print(odd + ", "); 
    } 
    } 
} 

Bien que je dois dire que ce code n'est pas beaucoup mieux. Il existe de bien meilleures façons de déterminer si un nombre est pair ou impair (indice modulo).

0

Vous pouvez collecter tous les nombres impairs et pairs avec Liste. Après cela, vous pouvez les imprimer.

ArrayList<String> odds = new ArrayList<>(); 
ArrayList<String> evens = new ArrayList<>(); 

for (int i = 50; i < 100; i++) { 
    if (i % 2 == 0) { 
     evens.add(String.valueOf(i)); 
    } else { 
     odds.add(String.valueOf(i)); 
    } 
} 

System.out.println("Your even numbers are: " + String.join(", ", evens)); 
System.out.println("Your odd numbers are: " + String.join(", ", odds)); 

Note: String.join() est pour Java 8 ou plus.

+1

est 3 boucles. –

+0

@SaviourSelf Merci pour votre suggestion. Ok, je vais modifier pour utiliser 'String.join'. – hata

3

est ici variante qui produit une copie exacte de votre sortie courant:

public class Homework6_EvenOdd { 
    public static void main(final String[] args) { 
     final StringBuilder even = new StringBuilder(); 
     final StringBuilder odd = new StringBuilder(); 
     for (int i = 50; i <= 100; i++) { 
      if ((i & 1) == 0) { 
       even.append(i + ", "); 
      } else { 
       odd.append(i + ", "); 
      } 
     } 
     System.out.println("Your even numbers are " + even.toString()); 
     System.out.println("Your odd numbers are " + odd.toString()); 
    } 
}