Ajuda em parar execução de programa

8 respostas
hugown

Então amigos, estou de volta com mais uma dúvida, mas agora é sobre método booleano.

Eu queria saber como faço para interromper uma execução em um método booleano, ou nem tem jeito? :~

System.exit(0); //não dá certo.

To começando programação e tal. Desculpe por qualquer pergunta idiota.

[]'s

8 Respostas

danielbussade

Olá seja mais especifico na sua pergunta.

O método booleano e para testar um loop como isto:

while(metodoBooleano()){
 //faça alguma coisa
}

Se for isso, basta adicionar um break; eh o loop irá encerrar, se não for descreva melhor sua pergunta, além disso System.exit(0) tem que funcionar sim;

Att

hugown

hahaha :frowning:
Sabia que minha pergunta tava mal formulada.

É o seguinte, tenho que fazer um programa que calcule : Par, Ímpar, Ano Bissexto e Primo. E os métodos para conseguir tais “respostas” precisam ser boolean, e quando o usuário digitar 0 (zero) o programa deve ser encerrado. Eu consegui fazer a parte de entrar com o dados e sair as “respostas” mas não to conseguindo fazer sair do programa quando for digitado 0 (zero).
Está melhor agora?

[]'s

danielbussade

Poste seu código para eu ver o que tá fazendo de errado.

hugown

É meio extenso mas lá vai

Primeira parte:
import java.util.*;
class Exerc2 {

	
		
	
	public static boolean isEven (int nEven) {
			if ( (nEven % 2) == 0) {
				return true;
			}else{
				return false;
			}
		}
		
	
	public static boolean isOdd (int nOdd) {
			if ((nOdd % 2) != 0) {
				return true;
			}else{
				return false;
			}
		}
	
	
	public static boolean eBissexto  (int nBiss) {
			if ( ((nBiss % 400) == 0) || (((nBiss % 4)==0)&& ((nBiss % 100) != 0))){
				return true;
			}else{
				return false;
			}
		}
	
	
	public static boolean ePrimo (int nPrimo){
			if (nPrimo == 0){
				return false;
			}else{
				for (int i = 2; i <= nPrimo; i++){
					if ((nPrimo % i) != 0){
						return true;
					} else {
						return false;
					}
				}
				return true;
			}
	}		
}
Segunda Parte:
import java.util.*;
public class Exerc2TestDrive {
	public static void main (String args[]){
	
		Scanner teclado = new Scanner(System.in);
		
		Exerc2 obj = new Exerc2();
			
		
		System.out.println("Par:");
		 if (obj.isEven(teclado.nextInt())){
			System.out.println("eh par");
		} else {
			System.out.println("nao eh par");
		}
						
				
		System.out.println("Impar:");
		 if (obj.isOdd(teclado.nextInt())){
			System.out.println("eh impar");
		} else { 
			System.out.println("nao eh impar");
		}
			
		
		System.out.print("Bissexto:");
		 if (obj.eBissexto(teclado.nextInt())){
			System.out.println("eh bissexto");
		} else {
			System.out.println("nao eh bissexto");
		}
	
		
		
		System.out.println("Primo:");
		if (obj.ePrimo(teclado.nextInt())){
			System.out.println("eh primo");
		} else {
			System.out.println("nao eh primo");
		}
		
		
		
	}
}
danielbussade

Olá tem como melhorar muita coisa, mas como to sem tempo agora, mudei algumas coisas rapidamente.

Parte 1

import java.util.*;

class Exerc2 {

	public static boolean isEven(int nEven) {
		if ((nEven % 2) == 0) {
			return true;
		}
		return false;		
	}

	public static boolean isOdd(int nOdd) {
		if ((nOdd % 2) != 0) {
			return true;
		   } 
		return false;
	}

	public static boolean eBissexto(int nBiss) {
		if (((nBiss % 400) == 0)
				|| (((nBiss % 4) == 0) && ((nBiss % 100) != 0))) {
			return true;
		}
		return false;
	}

	public static boolean ePrimo(int nPrimo) {
		if (nPrimo == 0) {
			return false;
		} else {
			for (int i = 2; i <= nPrimo; i++) {
				if ((nPrimo % i) != 0) {
					return true;
				} else {
					return false;
				}
			}
			return true;
		 }
	}
	
	
}

Parte 2

import java.util.*;

public class Exerc2TestDrive {
	public static void main(String args[]) {

		Scanner teclado = new Scanner(System.in);

		// Exerc2 obj = new Exerc2();

		System.out.println("Par:");
		int tecla = teclado.nextInt();
		if (tecla != 0) {
			if (Exerc2.isEven(tecla)) {
				System.out.println("eh par");
			} else {
				System.out.println("nao eh par");
			}
		} else {
			System.exit(0);
		}

		System.out.println("Impar:");
		tecla = teclado.nextInt();
		if (tecla != 0) {
			if (Exerc2.isOdd(teclado.nextInt())) {
				System.out.println("eh impar");
			} else {
				System.out.println("nao eh impar");
			}
		} else {
			System.exit(0);
		}

		System.out.print("Bissexto:");
		tecla = teclado.nextInt();
		if (tecla != 0) {
			if (Exerc2.eBissexto(teclado.nextInt())) {
				System.out.println("eh bissexto");
			} else {
				System.out.println("nao eh bissexto");
			}
		} else {
			System.exit(0);
		}

		System.out.println("Primo:");
		tecla = teclado.nextInt();
		if (tecla != 0) {
			if (Exerc2.ePrimo(teclado.nextInt())) {
				System.out.println("eh primo");
			} else {
				System.out.println("nao eh primo");
			}
		} else {
			System.exit(0);
		}

	}
}

Att

hugown

Ahhhhhhhhh! Agora entendi! :X

Nossa que vergonha por não ter pensado nisso antes. :x
hahahahahahha

Valeu mesm amigo.

[]'s

danielbussade

De nada, o ideal é você aplicar um metodo de sentinela tipo definindo um valor como -1 por exemplo
eh usar uma estrutura deste tipo

do{
}while(num!=-1)

Em relação aos seus metodos estáticos, você nao precisa criar uma instância para acessá-los perceba que eu acessei pela própria classe, essa eh a intenção do static;

Ex : Exerc2.metodo();

Valeu

hugown

Eu não entendi sobre usar o método de sentinela. :S

Mas vlw. :wink:

Criado 21 de setembro de 2008
Ultima resposta 21 de set. de 2008
Respostas 8
Participantes 2