Autor
|
Tema: Nueva en Java y tengo una pregunta? (Leído 5,992 veces)
|
monsefoster
Desconectado
Mensajes: 83
|
Chicos, hice este programa... 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 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
|
|
|
En línea
|
|
|
|
Casidiablo
|
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: import java.io.*; /** * Este programa pide un numero al usuario hasta que sea mayor que 10. */ public class programa { int a; System. out. println ("Valor a debe ser mayor de 10"); do{ System. out. println ("Inserte valor a: "); a = Integer. parseInt(en. readLine()); if(a <=10) System. out. println ("\nEl valor a debe ser mayor que 10"); } while(a<=10); System. out. println ("\nQue bien, lo has entendido!"); } }
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
Mensajes: 83
|
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 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!
|
|
« Última modificación: 10 Noviembre 2009, 06:40 am por monsefoster »
|
En línea
|
|
|
|
Casidiablo
|
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
Mensajes: 83
|
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
|
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
|
|
|
|
|
|
Debci
Wiki
Desconectado
Mensajes: 2.021
Actualizate o muere!
|
o_O
Reafirmo tu respuesta xD Casidiablo Rules! Saludos
|
|
|
En línea
|
|
|
|
-Ramc-
Desconectado
Mensajes: 495
|
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.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Tengo una pregunta
Bugs y Exploits
|
molinator
|
0
|
2,380
|
4 Mayo 2012, 14:44 pm
por molinator
|
|
|
Pregunta de java
Java
|
caballero220390
|
1
|
1,550
|
25 Junio 2015, 12:45 pm
por Baal_30
|
|
|
Tengo una duda con un codigo de java
Java
|
mystes93
|
5
|
2,470
|
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
|
22 Septiembre 2021, 14:18 pm
por MinusFour
|
|
|
Tengo una pregunta corta
Windows
|
LucchettiFan
|
6
|
2,371
|
3 Abril 2024, 18:46 pm
por Fernando Morales
|
|