Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Duda While

Estas en el tema de Duda While en el foro de Java en Foros del Web. Muy buenas, hace poco que he comenzado un curso en java, ya que no tenía ni la más mínima idea de este lenguaje, siempre he ...
  #1 (permalink)  
Antiguo 20/02/2013, 10:53
Avatar de Atorort  
Fecha de Ingreso: abril-2010
Ubicación: Valencia
Mensajes: 127
Antigüedad: 14 años
Puntos: 0
Duda While

Muy buenas, hace poco que he comenzado un curso en java, ya que no tenía ni la más mínima idea de este lenguaje, siempre he programado en .Net.

Pues bien, la primera actividad es calcular el factorial de un número, obviamente, sin utilizar funciones recursivas ni nada por el estilo.

Me he decidido por hacerlo con un While, y el problema esque sale antes de cumplir la condición.

El código es este:
Código Javascript:
Ver original
  1. public class CalculaFactorial {
  2.  
  3.     /**
  4.      * @param args
  5.      */
  6.     public static void main(String[] args) {
  7.         int n = 5;
  8.         int x = n-1;
  9.        
  10.         While (x > 1);
  11.             {
  12.             n = x * n;
  13.             x++;
  14.             }
  15.                                             }
  16.    
  17.     private static void While(boolean b) {
  18.         // TODO Auto-generated method stub
  19.        
  20.     }
  21. }



EDITO: Al parecer el problema no está en el código, sino al hacer DEBUG en ECLIPSE, el mensaje de error que me sale es "Source not found." Y un botón "Edit Source Lookup Path..."

Alguna solución? Gracias!!
__________________
Adrian Tornero Ortiz
Técnico Superior en Desarrollo de Aplicaciones Informáticas
https://www.linkedin.com/in/adriantornero

Última edición por Atorort; 20/02/2013 a las 11:05
  #2 (permalink)  
Antiguo 20/02/2013, 11:59
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Duda While

El tema es que igual no tienes las fuentes en el sitio correcto, y luego tienes que compilar para generar los .class que son los que vas a ejecutar.

De todos modos en el while

int n = 5;
int x = n-1;

While (x > 1);
{
n = x * n;
x++;
}

Estado inicial: (n=5;x=4)
Tras 1ª Iteracion: (n=20;x=5)
Tras 2ª Iteracion: (n=100;x=6)
... nunca vas a salir del bucle tal y como lo tienes

Por tanto sería conveniente que usases x-- (que va reduciendo x en vez de aumentarlo)

Ten cuidado y piensa antes de hacer las cosas
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #3 (permalink)  
Antiguo 20/02/2013, 12:52
Avatar de Atorort  
Fecha de Ingreso: abril-2010
Ubicación: Valencia
Mensajes: 127
Antigüedad: 14 años
Puntos: 0
Respuesta: Duda While

Tienes razón en lo del While, me dí cuenta al postearlo y lo corregí en mi código, pero no aquí, lo siento.

Que quieres decir con que no tengo las fuentes en el sitio correcto? Puf me pierdo un poco con eso...

Gracias

EDITO: Te explico un poco. He creado un nuevo Proyecto Java en Eclipse, dándole de nombre ModuloII, dentro de este, me he creado una nueva clase llamada "CalcularFactorial" que es en la que pongo el código anterior. Guardo todo (y con ésto eclipse compila).

Doy botón derecho en "CalcularFactorial.java", y compruebo que en las propiedades de ModuloII, en "Java Build Path", tengo como "Default output folder:" la carpeta ModuloII/bin.

Me voy al explorador de windows, y en esta carpeta tengo el fichero CalcularFactorial.class.

Así que lo tengo correcto o algo no entiendo bien, verdad? Muchas gracias!
__________________
Adrian Tornero Ortiz
Técnico Superior en Desarrollo de Aplicaciones Informáticas
https://www.linkedin.com/in/adriantornero

Última edición por Atorort; 20/02/2013 a las 13:31
  #4 (permalink)  
Antiguo 20/02/2013, 16:05
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Duda While

Revisa lo que se dice por aquí:

http://www.forosdelweb.com/f45/no-pu...-found-999773/
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #5 (permalink)  
Antiguo 20/02/2013, 16:24
Avatar de andres_15_  
Fecha de Ingreso: septiembre-2008
Ubicación: Cali
Mensajes: 232
Antigüedad: 15 años, 7 meses
Puntos: 7
Respuesta: Duda While

Cita:
Iniciado por Atorort Ver Mensaje
Muy buenas, hace poco que he comenzado un curso en java, ya que no tenía ni la más mínima idea de este lenguaje, siempre he programado en .Net.

Pues bien, la primera actividad es calcular el factorial de un número, obviamente, sin utilizar funciones recursivas ni nada por el estilo.

Me he decidido por hacerlo con un While, y el problema esque sale antes de cumplir la condición.

El código es este:
Código Javascript:
Ver original
  1. public class CalculaFactorial {
  2.  
  3.     /**
  4.      * @param args
  5.      */
  6.     public static void main(String[] args) {
  7.         int n = 5;
  8.         int x = n-1;
  9.        
  10.         While (x > 1);
  11.             {
  12.             n = x * n;
  13.             x++;
  14.             }
  15.                                             }
  16.    
  17.     private static void While(boolean b) {
  18.         // TODO Auto-generated method stub
  19.        
  20.     }
  21. }




EDITO: Al parecer el problema no está en el código, sino al hacer DEBUG en ECLIPSE, el mensaje de error que me sale es "Source not found." Y un botón "Edit Source Lookup Path..."

Alguna solución? Gracias!!
buen dia, en primera while no te lo toma, porque esta en mayuscula, recuerda que Java distingue entre estos, y como sugerencia porque no lo haces con un for?
  #6 (permalink)  
Antiguo 20/02/2013, 17:55
Avatar de Atorort  
Fecha de Ingreso: abril-2010
Ubicación: Valencia
Mensajes: 127
Antigüedad: 14 años
Puntos: 0
Respuesta: Duda While

Gracias a todos.

Andrés, no lo hago con For porque estoy aprendiendo Java, y en el curso que estoy realizando me propone hacer este ejercicio con un bucle while.

Muy acertado lo del "While" en mayúscula, no recordé que Java era case sensitive y era el problema. Al llegar al método While petaba.

Muchas gracias!
__________________
Adrian Tornero Ortiz
Técnico Superior en Desarrollo de Aplicaciones Informáticas
https://www.linkedin.com/in/adriantornero

Etiquetas: programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:34.