Chamar função pelo menu! (dúvida programação)! [Caso Resolvido]

import java.io.*;
public class Teste {
    public static void main(String args[]){
int op = 999;
	int numeros[] = new int[2];
numeros = Ler();
while (op != 6){

  	 op = Menu();

	switch (op){

		case 1: Ler();break;
		case 2:Soma(numeros);break;
    	case 3: Subtrair(numeros);break;
    	case 4: Dividir(numeros);break;
    	case 5:Multiplicar(numeros);break;
    	case 6: Sair();break;
		}
	}
}



public static int Menu(){

DataInputStream opc ;
opc = new DataInputStream(System.in);

	int teste=0;
	String opcao="";
	 System.out.println("Menu ");
	 System.out.println("1) Ler");
	 System.out.println("2) Somar");
     System.out.println("3) Subtrair");
     System.out.println("4) Dividir");
     System.out.println("5)Multiplicar");
     System.out.println("Opção: ");

     try{
         opcao = opc.readLine();
	     teste=Integer.parseInt(opcao);
	     }
     	catch (IOException e){
     	System.out.println("Error!!! ");
     	}
				return teste;

}


public	 static int[] Ler(){

	 DataInputStream ler = new DataInputStream(System.in);

String a,b;int c=0,d=0;
 try{

 	    System.out.println("Primeiro número: ");
 	    a = ler.readLine();
 	    c=Integer.parseInt(a);
 	    System.out.println("Segundo número: ");
 	    b = ler.readLine();
 	    d=Integer.parseInt(b);


     }
     catch (IOException e){
     	System.out.println("Error!!! ");
     }
	return new int[] {c,d};
}


	public static void Soma( int numeros[]){
	int s = (numeros[0]+numeros[1]);
	System.out.println("Soma = "+s);
	}

	public static void Subtrair( int numeros[]){
	int s;
	if(numeros[0]>numeros[1])
		s = numeros[0]-numeros[1];
		else
			s=numeros[1]-numeros[0];
	System.out.println("Subtração= "+s);
	}

	public static void Dividir( int numeros[]){
	int s;
	if(numeros[0]>numeros[1])
			s = numeros[0]/numeros[1];
		else
					s=numeros[1]/numeros[0];
			System.out.println("Divisão= "+s);


	}

	public static void Multiplicar( int numeros[]){
	int s;
		s = numeros[0]*numeros[1];
		System.out.println("Multipliação= "+s);
	}


public static void Sair(){
	System.out.println("Programa Encerrado!!!");
	System.exit(0);
}
	}

Não consigo entrar pelo menu pra digitar a opção, entao ali no caso se numeros = Ler(); sem isso nao posso fazer as de mais funçoes, o problema é que ele pede pra ler os 2 inteiros mais do que uma vez pq eu chamo a função antes do Menu.Mas o certo seria ele entra no Menu ler as os inteiros e executar as demais operações sem pedir para digitar denovo os inteiros, se aguem puder ajudar ai!!! Abraços…

Cara, acho que entendi mais ou menos…

Se eu tiver entendido, tu pode verificar antes de uma operação se numeros[x] == null, e toda vez que tu terminar uma oparação, tu deixa o numeros[x] = null;

Consegui aqui, eu só coloquei o numeros = ler(); ali no case 1 mesmo…ai deu certo!!!

blz, vlw

Coloca [Resolvido] lá no tópico

[quote=matheussbs][code]
import java.io.*;
public class Teste {
public static void main(String args[]){
int op = 999;
int numeros[] = new int[2];
numeros = Ler();
while (op != 6){

 op = Menu();

switch (op){

	case 1: Ler();break;
	case 2:Soma(numeros);break;
	case 3: Subtrair(numeros);break;
	case 4: Dividir(numeros);break;
	case 5:Multiplicar(numeros);break;
	case 6: Sair();break;
	}
}

}

public static int Menu(){

DataInputStream opc ;
opc = new DataInputStream(System.in);

int teste=0;
String opcao="";
 System.out.println("Menu ");
 System.out.println("1) Ler");
 System.out.println("2) Somar");
 System.out.println("3) Subtrair");
 System.out.println("4) Dividir");
 System.out.println("5)Multiplicar");
 System.out.println("Opção: ");

 try{
     opcao = opc.readLine();
     teste=Integer.parseInt(opcao);
     }
 	catch (IOException e){
 	System.out.println("Error!!! ");
 	}
			return teste;

}

public static int[] Ler(){

 DataInputStream ler = new DataInputStream(System.in);

String a,b;int c=0,d=0;
try{

    System.out.println("Primeiro número: ");
    a = ler.readLine();
    c=Integer.parseInt(a);
    System.out.println("Segundo número: ");
    b = ler.readLine();
    d=Integer.parseInt(b);


 }
 catch (IOException e){
 	System.out.println("Error!!! ");
 }
return new int[] {c,d};

}

public static void Soma( int numeros[]){
int s = (numeros[0]+numeros[1]);
System.out.println("Soma = "+s);
}

public static void Subtrair( int numeros[]){
int s;
if(numeros[0]>numeros[1])
	s = numeros[0]-numeros[1];
	else
		s=numeros[1]-numeros[0];
System.out.println("Subtração= "+s);
}

public static void Dividir( int numeros[]){
int s;
if(numeros[0]>numeros[1])
		s = numeros[0]/numeros[1];
	else
				s=numeros[1]/numeros[0];
		System.out.println("Divisão= "+s);


}

public static void Multiplicar( int numeros[]){
int s;
	s = numeros[0]*numeros[1];
	System.out.println("Multipliação= "+s);
}

public static void Sair(){
System.out.println(“Programa Encerrado!!!”);
System.exit(0);
}
}

[/code]

Não consigo entrar pelo menu pra digitar a opção, entao ali no caso se numeros = Ler(); sem isso nao posso fazer as de mais funçoes, o problema é que ele pede pra ler os 2 inteiros mais do que uma vez pq eu chamo a função antes do Menu.Mas o certo seria ele entra no Menu ler as os inteiros e executar as demais operações sem pedir para digitar denovo os inteiros, se aguem puder ajudar ai!!! Abraços…

[/quote]