elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Nueva en Java y tengo una pregunta?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Nueva en Java y tengo una pregunta?  (Leído 5,992 veces)
monsefoster

Desconectado Desconectado

Mensajes: 83



Ver Perfil
Nueva en Java y tengo una pregunta?
« en: 10 Noviembre 2009, 05:13 am »

Chicos, hice este programa...
Código:
import java.io.*;

public class mece2n {
/* Ejercicio #1, Guia Info 2:
*1. Leer dos números y mostrar todos los enteros comprendidos entre ellos.
*/

public static void main(String[] args) throws IOException {
int a,b,i;
BufferedReader en = new BufferedReader (new InputStreamReader (System.in));
System.out.println ("valor a debe ser mayor a valor b");
System.out.println ("Inserte valor a: ");
System.out.flush();
a = Integer.parseInt(en.readLine());
System.out.println ("\nInserte valor b: ");
System.out.flush();
b = Integer.parseInt(en.readLine());
if (a>b){
System.out.println ("\nel valor a debe ser mayor que el valor b");

}

System.out.println ("\nLos numeros entre " +a+ " y " +b+ " son:\n");
   for (i=a+1;i<b;i++){

      System.out.println (i);
   }

}
}

Y queria saber si habia alguna manera de 1.- En caso que el if se ejecute, luego de mostrar el mensaje, regrese a la instruccion anterior de leer los valores...

2.- En caso que la condicion del if siga siendo verdadera, repetir la instruccion

Código:
System.out.println ("valor a debe ser mayor a valor b");
System.out.println ("Inserte valor a: ");
System.out.flush();
a = Integer.parseInt(en.readLine());
System.out.println ("\nInserte valor b: ");
System.out.flush();
b = Integer.parseInt(en.readLine());
tantas veces como sea necesario, hasta que se inserten los valores correctos...

Perdonen, que quizas es una estupidez, este es el segundo "programa" que hago...me estoy iniciando  :rolleyes:


En línea

Casidiablo
Desarrollador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.919



Ver Perfil WWW
Re: Nueva en Java y tengo una pregunta?
« Respuesta #1 en: 10 Noviembre 2009, 05:47 am »

Hola monsefoster.
 
 En este caso debes usar otro tipo de instrucciones de control a parte del if. Lo que debes usar es un 'do while' que es una instrucción para manejar ciclos (también existe el 'for' y el 'while' que es para otro tipo de iteraciones). No voy a arreglar tu código para que haga lo que necesitas; eso sería aburrido y no te enseñaría mucho.
 
 En vez de eso, mejor te pongo un ejemplo rápido de cómo sería:

Código
  1. import java.io.*;
  2. /**
  3. * Este programa pide un numero al usuario hasta que sea mayor que 10.
  4. */
  5. public class programa {
  6. public static void main(String[] args) throws IOException {
  7. int a;
  8. System.out.println ("Valor a debe ser mayor de 10");
  9. do{
  10. System.out.println ("Inserte valor a: ");
  11. System.out.flush();
  12. a = Integer.parseInt(en.readLine());
  13. if(a<=10) System.out.println ("\nEl valor a debe ser mayor que 10");
  14. }
  15. while(a<=10);
  16. System.out.println ("\nQue bien, lo has entendido!");
  17. }
  18. }

Explicación breve: la estructura de control do while ejecuta un bloque de instrucciones UNA VEZ, y luego (en la parte del while) verifica si una condición se cumple. Si se cumple, entonces VUELVE A EJECUTAR el bloque de instrucciones.

Es distinto al while condicional en donde PRIMERO SE PREGUNTA ANTES DE EJECUTAR.

Puedes encontrar muchos otros ejemplos básicos aquí: http://casidiablo.net/java o video tutoriales que he hecho aquí: http://casidiablo.net/media/

Ten cuidado además con las condiciones. En tu caso quieres que A sea mayor que B, pero en la condición pones A>B y ejecutas el aviso. En este caso es al contrario, debes poner en la condición A<=B ya que lo que deseas es alertar al usuario cuando A sea menor o igual a B.

Un saludo!
 


« Última modificación: 10 Noviembre 2009, 05:49 am por Casidiablo » En línea

monsefoster

Desconectado Desconectado

Mensajes: 83



Ver Perfil
Re: Nueva en Java y tengo una pregunta?
« Respuesta #2 en: 10 Noviembre 2009, 05:53 am »

Hola, Gracias por tu ayuda! Tenia algo asi en mente, solo que no lo aplique por no estar segura...

La cosa es que probablemente tenga un error en la expresion
Código:

do{
System.out.println ("Inserte valor a: ");
System.out.flush();
a = Integer.parseInt(en.readLine());
System.out.println ("\nInserte valor b: ");
System.out.flush();
b = Integer.parseInt(en.readLine());
*** if ((a>b) && (a!=b)){
System.out.println ("\nel valor a debe ser menor que el valor b");

}
*** }while ((a>b) && (a!=b));

Pues aunque ingrese el mismo valor, igual me imprime en el caso de (a=15, b=15), asi que, es como si se salta el a!=b, estoy haciendo algo mal?

Y de nuevo, perdonen mi idiotez en el tema...estoy tratando de aprender a hacer las cosas "bien". No me conformo con solo probar si funciona de una manera y dejarlo asi, si no, los problemas que se pueden presentar y atacarlos de una sola manera.

Por cierto, casidiablo, gracias por el maravilloso link que me enviaste, y te tengo una pregunta, me llego un mensaje diciendo que habia violado las normas, pero... no se que norma o regla violé, si me podrias decir para no cometerlo de nuevo? Gracias!  :rolleyes:
« Última modificación: 10 Noviembre 2009, 06:40 am por monsefoster » En línea

Casidiablo
Desarrollador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.919



Ver Perfil WWW
Re: Nueva en Java y tengo una pregunta?
« Respuesta #3 en: 10 Noviembre 2009, 14:57 pm »

Hola monsefoster...

Umm, lo que te digo... debes cambiar (a>b) && (a!=b) por (a<=b). Entiendes porqué?

Un saludo!
En línea

monsefoster

Desconectado Desconectado

Mensajes: 83



Ver Perfil
Re: Nueva en Java y tengo una pregunta?
« Respuesta #4 en: 10 Noviembre 2009, 16:18 pm »

No, no entiendo porque...me di cuenta y tenia un error "a debe ser menor y diferente de b", pues debo imprimir los numeros en ese intervalo
En línea

Casidiablo
Desarrollador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.919



Ver Perfil WWW
Re: Nueva en Java y tengo una pregunta?
« Respuesta #5 en: 11 Noviembre 2009, 02:43 am »

Ahora soy yo el que no entiende qué no entiendes XD Debes exponer tus dudas de una manera más clara ;)

Un saludo!
En línea

Leyer


Desconectado Desconectado

Mensajes: 786


leyer@elhacker.net


Ver Perfil WWW
Re: Nueva en Java y tengo una pregunta?
« Respuesta #6 en: 11 Noviembre 2009, 03:09 am »

 :xD
« Última modificación: 30 Junio 2010, 22:45 pm por LEYER » En línea

Casidiablo
Desarrollador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.919



Ver Perfil WWW
Re: Nueva en Java y tengo una pregunta?
« Respuesta #7 en: 11 Noviembre 2009, 03:11 am »

o_O
En línea

Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: Nueva en Java y tengo una pregunta?
« Respuesta #8 en: 11 Noviembre 2009, 17:06 pm »

o_O
Reafirmo tu respuesta xD
Casidiablo Rules!

Saludos
En línea

-Ramc-


Desconectado Desconectado

Mensajes: 495



Ver Perfil
Re: Nueva en Java y tengo una pregunta?
« Respuesta #9 en: 11 Noviembre 2009, 17:39 pm »

Hola monsefoster...

Umm, lo que te digo... debes cambiar (a>b) && (a!=b) por (a<=b). Entiendes porqué?

Un saludo!

eso dices que vaya en la condición del while o del if, en cualquiera de los dos casos, no tiene sentido, se supone que a debe ser menor que b.

Que ponga en la condición del while y del if (a>=b) y le funciona.
En línea


Shhh... be vewy, vewy, quiet!  I'm hunting wabbits...
LA PANDILLA MAS GRANDE DE MI CIUDAD, SE LLAMA POLICIA NACIONAL.
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Tengo una pregunta
Bugs y Exploits
molinator 0 2,380 Último mensaje 4 Mayo 2012, 14:44 pm
por molinator
Pregunta de java
Java
caballero220390 1 1,550 Último mensaje 25 Junio 2015, 12:45 pm
por Baal_30
Tengo una duda con un codigo de java
Java
mystes93 5 2,470 Último mensaje 8 Julio 2015, 02:13 am
por robertoht
[Pregunta]: ¿Por qué si yo uso ratchet tengo que usar un vps en producción? (EDITADO)
Desarrollo Web
Leguim 2 3,331 Último mensaje 22 Septiembre 2021, 14:18 pm
por MinusFour
Tengo una pregunta corta
Windows
LucchettiFan 6 2,371 Último mensaje 3 Abril 2024, 18:46 pm
por Fernando Morales
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines