ayuda con Scanner

Iniciado por .rn3w., 30 Agosto 2011, 04:57 AM

0 Miembros y 1 Visitante están viendo este tema.

.rn3w.

trato de que sea mas dinamico por ejemplo si tecleo 'si' quiero volver a ingresar los mismos datos que son lado1, lado2, lado3

Código (java) [Seleccionar]
import java.util.*;
public class Lector{

public static void main(String [] args){
Scanner dato = new Scanner(System.in);
String r=" ";
System.out.println("Ingrese 'si' si quiere iniciar/continuar");
r=dato.nextLine();
while(r.equals("si")){
System.out.println("Ingrese lado1");
int lado1=dato.nextInt();
System.out.println("Ingrese lado2");
int lado2=dato.nextInt();
System.out.println("Ingrese lado3");
int lado3=dato.nextInt();

           String res="";
                     
           if(lado1==lado2 && lado1==lado3 && lado2==lado3){
               System.out.println("Es triangulo Equilatero");
           }
           if(lado1==lado2 || lado1!=lado3 ){
           System.out.println("Es triangulo isoceles");
           
           }
           if(lado1!=lado2 && lado1!=lado3 && lado2!=lado3){
           
           System.out.println("Es triangulo Escaleno");
           }
           System.out.println("Ingrese 'si' si quiere iniciar/continuar");
           r=dato.nextLine();

       }  
           }
       }

.rn3w.

ayuda por faaaaaaaaaaaaaaaaaaaaaaaa
o que!!!
nadie sabe como resolver este problema????????????????????????

egyware

#2
No entendi muy bien tu pregunta, y por lo que veo el codigo podria funcionar sin problemas.
Si te ayuda intenta con Scanner.next (creo no he visto la documentación y me da flojera xD)
Saludos!!!

Leete este tema:
http://foro.elhacker.net/java/problema_con_nextline_como_evitar_salto_de_linea-t337586.0.html;msg1657568#msg1657568

.rn3w.

quiero que el lector sea mas dinamico
cada ves que termine de darme el resultado quiero que funcione nuevamente el Scanner

Valkyr

He estado probando lo que se habló en un tema similar (el enlace que puso egyware) y no funciona no se por qué. Nunca he utilizado esta clase, así que mirando el código la única solución que se me ocurre es que realices dos llamadas al método nextLine(). Es decir:

Código (java) [Seleccionar]

import java.util.*;

public class AOC {

public static void main(String[] args) {
Scanner dato = new Scanner(System.in);
String r = " ";
System.out.println("Ingrese 'si' si quiere iniciar/continuar");
r = dato.nextLine();
while (r.equals("si")) {
System.out.println("Ingrese lado1");
int lado1 = dato.nextInt();
System.out.println("Ingrese lado2");
int lado2 = dato.nextInt();
System.out.println("Ingrese lado3");
int lado3 = dato.nextInt();

if (lado1 == lado2 && lado1 == lado3 && lado2 == lado3) {
System.out.println("Es triangulo Equilatero");
}
if (lado1 == lado2 || lado1 != lado3) {
System.out.println("Es triangulo isoceles");

}
if (lado1 != lado2 && lado1 != lado3 && lado2 != lado3) {

System.out.println("Es triangulo Escaleno");
}
System.out.println("Ingrese 'si' si quiere iniciar/continuar");
dato.nextLine();
r = dato.nextLine();
}
}
}


De esa forma funciona correctamente y hace lo que pedías que hiciese. La solución es un poco...chapucera pero por el momento puede servirte.

Saludos.

.rn3w.