Método para diminuir o código?[resolvido]

4 respostas
pardim7

Olá pessoal, eu fiz um projeto do curso que é o seguinte: faz calculos de divisao, multiplicação, etc, ai para fechar o programa é só digitar o nuumero 0, e então eu queria saber se há como eu diminuir o código porque ele ficou muito repetitivo.

import java.util.*;

public class Cases {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Scanner entrada = new Scanner(System.in);

				
		int contas, contas1, contas2, contas3 ;
		int numero1, numero2, numero3, numero4, numero5, numero6, numero7, numero8;
		{
		
		System.out.println("Digite um numero");
		numero1 = entrada.nextInt();
	if (numero1 >0 ){
		System.out.println("Digite outro numero");
		numero2 = entrada.nextInt();
		 
		contas = numero1+numero2;
		System.out.println("Resultado é:"+contas+"");
	}else
		System.out.println("programa fechado");
	
		
		System.out.println("Digite um numero");
		numero3 = entrada.nextInt();
	if  ( numero3 >0){	
		System.out.println("didgite um numero");
		numero4 = entrada.nextInt();
		
		contas1 =  numero3 - numero4;
		
		System.out.println("o resultado é : "+contas1+"");		
		
	}else
		System.out.println("programa fechado");
	
	
		
		System.out.println("Digite numero");
		numero5 = entrada.nextInt();
		
	if(numero5 > 0){
		  System.out.println("digite numero");
		numero6 = entrada.nextInt(); 
	contas2 = numero5*numero6;
	
	System.out.println("Resultado é:" +contas2+"");
	}else
		System.out.println("Programa fechado");
		
			}
		System.out.println("digite numero");
	numero7= entrada.nextInt();	
		if(numero7 >0){
			System.out.println("digite numero");
			numero8 = entrada.nextInt();
			
			contas3 = numero7/numero8;
			
			System.out.println("Resultado:"+contas3+"");
		} else
			System.out.println("Programa fechado");
								
		}
		
	}

4 Respostas

Andre_Rosa

Você pode fazer apenas um laço, e dentro do loop ir recebendo os valores, em um arrayList. Isso já diminuiria bem.

rxca

pardim7,

pelo que me pareceu, à primeira vista, ele não fecha o programa, mas vamos lá… algumas perguntas:

  • você precisa ter 8 números diferentes, ou você pode fazer as operações com somente 2?
  • você já viu laços na faculdade?

sugestão minha:

import java.util.*;

public class Cases {

    public static void main(String [] args) {

        int numero1 = 0;
        int numero2 = 0;
        int opcao = -1;
        Scanner sc = new Scanner(System.in);

        while (1) {
            System.out.print("Digite sua opção (ou 0 para sair): ");
            opcao = sc.nextInt();

            if (opcao == 0) {
                break;
            }

            System.out.print("Digite o primeiro número: ");
            numero1 = sc.nextInt();
            System.out.print("Digite o segundo número: ");
            numero2 = sc.nextInt();

            switch (opcao) {
                case 1:
                    System.out.println("Soma = " + (numero1 + numero2));
                    break;
                case 2:
                    System.out.println("Subtração = " + (numero1 - numero2));
                    break;
                case 3:
                    System.out.println("Multiplicação = " + (numero1 * numero2));
                    break;
                case 4:
                    if (numero2 != 0) {
                        System.out.println("Soma = " + (numero1 / numero2));
                    } else {
                        System.out.println("Impossível dividir por zero!");
                    }
                    break;
                default:
                    System.out.println("Opção inválida!");
                    break;
            }
            
        }

        System.out.println("Fim do programa!");

    }

}

Fiz isso aqui no fórum sem testar, então se tiver algum erro de ortografia, sintaxe, etc., desconsidere por favor!
Eu tomei a liberdade de criar uma variável opção que controla o que vai acontecer com os números, e caso ela seja 0, sai do programa, assim você fica livre pra realizar operações com o número 0.
A ideia, como o Andre falou, é utilizar um laço pra poder controlar se você vai continuar fazendo operações ou não, mas nunca coloque o controle em uma variável que você vai utilizar como cálculo, nesse caso.

[]'s
bons estudos.

pardim7

pode ser com 2, mas preciso que eles façam contas de multiplicação, divisao, subtração e divisao

ainda nao to na facul mas já vi laços

Pois é andré rosa, e rxca, vc estao certos :smiley:
Me ajudaram muito
o andre disse que laços já resolvia, mas acho que eu nunca ina conseguir fazer isso no código, entao ainda bem que vc me mostro rxca

Obrigado a vcs, o programa ta rodando sim :wink:

abraços

rxca

De nada cara, estamos aqui pra ajudar! ;D

Criado 3 de novembro de 2011
Ultima resposta 3 de nov. de 2011
Respostas 4
Participantes 3