Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/12/2013, 06:07
SilverDante
 
Fecha de Ingreso: diciembre-2013
Mensajes: 36
Antigüedad: 11 años
Puntos: 1
Pregunta Duda en JAVA, comportamiento raro en un FOR

Tengo que hacer esto:

Código:
1. Un vector en un espacio tridimensional es una tripleta de valores reales (x,y,z). 
2. Deseamos confeccionar un programa que permita operar con dos vectores, utilizando 
métodos. 
3. Habrá un método verMenu, en el cual se visualizará una pantalla con las siguientes 
opciones: 
 __________________________
1. Introducir el primer vector 
2. Introducir el segundo vector 
3. Calcular la suma 
4. Calcular la diferencia 
5. Calcular el producto vectorial 
6. Calcular el producto escalar 
7. Calcular el ángulo (en grados) entre ellos 
8. Calcular la longitud 
9. Finalizar 
___________________________

Tras la ejecución de cada una de las acciones del menú éste reaparecerá en pantalla, a 
menos que la opción escogida sea la número 9. Si el usuario escoge una opción diferente, el 
programa advertirá al usuario de su error y el menú reaparecerá. 
 
4. Habrá un método verVector para la visualización en pantalla del vector introducido. 
5. Habrá un método para cada una de las funciones que se especifican en el menú. 
 
Las opciones 4, 5 y 8 pueden proporcionar resultados distintos en función del orden de los 
operandos, así que, si se escoge cualquiera de ellas, aparecerá un nuevo menú que permita 
seleccionar el orden de los operandos. 
 
Por ejemplo, la opción 4 mostrará el siguiente menú: 
Primer vector menos segundo vector 
Segundo vector menos primer vector 
Esto se realizará llamando al método verSubmenu. 
Nuevamente, si el usuario se equivoca, se le advertirá del error y se le permitirá corregirlo.
[url=http://www.uploadhouse.com/viewfile.php?id=18729778&showlnk=0][img]http://img8.uploadhouse.com/fileuploads/18729/1872977881b07c136b8884e3b4fbf14d8ce26a3b.jpg[/img][/url]

Y he hecho el siguiente código (os lo pongo "todo" por si queréis probarlo):
Código:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package vectortridimensional;
import java.util.*;
/**
 *
 * @author Joan
 */
public class VectorTridimensional {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        
        Scanner teclado=new Scanner(System.in);
        int opcion;
        int [] v1;
        v1 = new int[3];
        int [] v2;
        v2 = new int[3];
        
        System.out.println("Introduce una opción del menu.");
        verMenu();
        opcion=teclado.nextInt();

/*-------------------------------------------------------------------------*/        
        while(opcion!=9){
        
            
                switch(opcion){

                case 1: 
                   introVector(v1); 
                   muestraVector(v1);
                   break;

                case 2: 
                    introVector(v2); 
                    break;

                case 3: ; break;
                case 4: ; break;
                case 5: ; break;
                case 6: ; break;
                case 7: ; break;
                case 8: ; break;
                case 9: ; break;
                //default: System.out.println("Error" ); break;

                }
        }


    }
    
/*-------------------------------------------------------------------------*/    
    
    public static void verMenu(){
    System.out.println("1. Introducir el primer vector");
    System.out.println("2. Introducir el segundo vector");
    System.out.println("3. Calcular la suma");
    System.out.println("4. Calcular la diferencia");
    System.out.println("5. Calcular el producto vectorial");
    System.out.println("6. Calcular el producto escalar"); 
    System.out.println("7. Calcular el ángulo (en grados) entre ellos"); 
    System.out.println("8. Calcular la longitud"); 
    System.out.println("9. Finalizar"); 
}
    
// método introduce valores a un vector
    public static void introVector(int [] v){
        Scanner teclado=new Scanner (System.in);
       
        
        for(int i=0;i<v.length;i++){
            System.out.println("Introduce un valor para la posición "+i);
            v[i]=teclado.nextInt();
        }
        
}
    
// método muestra vector
    public static void muestraVector(int [] v){
        
        for(int i=0;i<v.length;i++){
            System.out.println(v[i]); 
        }
        
}
}
Pero cuando empiezo a introducir valores en el FOR, parece que no se completa o continua con la ejecución y no sale del mismo, se queda siempre ejecutanto el FOR hasta el infinito.

GRACIAS por ayudarme