Java - Repetir en un ciclo

 
Vista:

Repetir en un ciclo

Publicado por javier (5 intervenciones) el 05/04/2006 17:48:37
Hola quisiera saber si alguien de ustedes me puede acesorar para evitar un error que tiene es programa lo que pasa es que vuelve a mostar los datos y no quiero que me los muestre.

import java.io.*;
class Caracter
{
char retorno;
char caracteres;

public Caracter (char caracter) throws IOException
{
Character caracter1 = new Character (caracter);

if ((Character.isDigit(caracter1)))
{
System.out.println ("Es un valor nùmerico ");
}
else
if ((Character.isUpperCase(caracter1)))
{
System.out.println ("Es una Letra mayuscula");
}
else
if ((Character.isLowerCase(caracter1)))
{
System.out.println ("Es Una Letra minuscula");
}
else
System.out.println ("Es un caràcter extraño solo en Codigo ASCII");
caracteres = caracter;
}

public char retornar()
{
return caracteres;
}
}

-----
y aqui invoco

import java.io.*;
public class CaracterTest
{
public static void main (String args []) throws IOException
{int opcion=0;
BufferedReader entrada = new BufferedReader (new InputStreamReader(System.in));


char cadena;
char halis;


do
{
System.out.println ("Introdusca un caracter: ");
cadena = (char) System.in.read();
Caracter constructor = new Caracter (cadena);
char caracteres;
caracteres= constructor.retornar();
System.out.println ("El caracter Introducido es un: "+caracteres);
System.out.println ("Desea Salir |0| or |1|: ");
halis = (char) System.in.read();

} while (halis != '0');


}
}


pero mi duda es como evitar que se me repita de nuevo osea si presiono 1 que me retorne vacio, si preciono cero que salga y que no me haga una comparaciòn nuevamente.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Repetir en un ciclo

Publicado por manru (161 intervenciones) el 06/04/2006 00:21:52
Hola javier:

Trata de usar solamente un System.in.read();
actualmente estas usando 2 llamadas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Repetir en un ciclo

Publicado por Isai (95 intervenciones) el 06/04/2006 00:28:07
en tu while(halis!=0);

Pero si le pones 1 quiere decir que no deseas salir por lo que vuelves a ejecutar la aplicacion... o ya no entendi...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Repetir en un ciclo

Publicado por Marco Antonio (57 intervenciones) el 06/04/2006 12:14:30
El problema es que el Sistem.in.read(), solo puede leer un caracter desde teclado aun asi si tienes varias sentencias para leer, las demas las pasa hasta encontrar el ultimo System.in.read()
La solucion es utilizar el BufferedReader que declaraste antes del bucle,
el codigo completo es:

import java.io.*;
public class CaracterTest
{
public static void main (String args []) throws IOException
{int opcion=0;
BufferedReader entrada = new BufferedReader (new InputStreamReader(System.in));
char cadena;
char halis;
String aux;
do
{
System.out.println ("Introdusca un caracter: ");
aux = entrada.readLine();
cadena=aux.charAt(0);
Caracter constructor = new Caracter (cadena);
char caracteres;
caracteres= constructor.retornar();
System.out.println ("El caracter Introducido es un: "+caracteres);
System.out.println ("Desea Salir |0| or |1|: ");
aux = entrada.readLine();
halis=aux.charAt(0);
} while (halis != '0');
}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar