Ajuda em um codigo

2 respostas
S

Nesse exercício preciso fazer o seguinte : Escrever uma função em Java que imprima os números de 0 a 100, substituindo os múltiplos de 3 por “ping”, os múltiplos de 7 por “pong” e os múltiplos de 3 e 7 por “pong ping”.

Cheguei ao seguinte codigo :

public static void main (String[] args) 
	{
		for(int i=1 ; i<=100 ; i++){
			             
                         if(i % 3 ==0)
                        { 
                              System.out.println((i)+" = ping");
                        }  
                        else if(i % 7 ==0)
                        {
				System.out.println((i)+" = pong");
                        }   
                         if(i % 3 ==0 && i % 7 ==0 )
                         
                        {
                        	System.out.println((i)+ " = pong ping");
                        }
                        else  
                        { 
                        	System.out.println(i);
                        } 
                        
                        
			
	}
}
}

Porem nesta condições eles lista todos os números substitui os múltiplos de 3 por ping os de 7 por pong e os comuns por ping pong como e dito , porem como preciso listar todos os numeros e so substituir os múltiplos ele acaba escrevendo duas vezes quando e multiplo de 3 , como posso resolver isso?

2 Respostas

A

Note que sempre que o número for múltiplo de 3 E múltiplo de 7, ele também será múltiplo de 3 sozinho. Entao você precisa definir essa “prioridade” nos seus ifs.

Uma forma simples de se fazer isso, é primeiro testar se o número é múltiplo de ambos e no else você fazer os outros testes.

4mega

Ja apareceu um cara com esta mesma duvida e eu desenvolvi este código para ele a pouco tempo atras.

public class MTres {

public static void main(String[] args) {
    menu();
}

public static void menu() {
    for (int i = 0; i <= 100; i++) {
        if (i % 3 == 0 || i % 7 == 0) {
            if (i % 7 == 0 && i % 3 >= 1) {
                System.out.println("MSETE");
            } else if (i % 3 == 0 && i % 7 >= 1) {
                System.out.println("MTRES");
            } else {
                System.out.println("MTRES MSETE");
            }
        } else {
            System.out.println(i);
        }
    }
}
}
Criado 17 de outubro de 2016
Ultima resposta 19 de out. de 2016
Respostas 2
Participantes 3