se atasca en una instruccion

Iniciado por Tyrz, 11 Enero 2011, 11:51 AM

0 Miembros y 2 Visitantes están viendo este tema.

Tyrz

Buenas!

mi problema esq he hecho varios programas en los que almaceno caracteres introducidos por teclado en un array de caracteres.

Siempre que hago algo como esto:
frases[1].caracteres[1]=c;
Este array de arrays de caracteres deja a mi java en estado de running pero no muestra nada.

Si hago un bucle como este:


while(c!=' '){
                   System.out.println("Aqui llega");
                   frases[1].caracteres[1]=c;
                   System.out.println("Aqui NO");
                   i++;
                   c=(char)System.in.read();
               }


Mostrara muchas veces el "Aqui llega" pero el "Aqui NO" ninguna vez.
No pongo el codigo completo porq supongo que estoy aaciendo algo mal en esa asignacion.

A ver si alguien puede decirme porq esta mal esa instruccion.
Gracias!
Web dedicada por completo al surf. Hablamos de tablas de surf, videos de surf, fotos, juegos y mucha información sobre como aprender a surfear, spots famosos como mundaka, pipeline y zonas como vizcaya, surf españa, sopelana y mucho más. Trucos y peligros del surf. A que esperas? Entra en  Surf

kasiko

prueba primero a hacer cosas con arrays de caracteres solo, a rellenarlo y a ver su contenido.

Despues prueba con los arrays de arrays de caracteres...  :rolleyes:
Nos vemos...


Tyrz

Gracias me has sido muy útil.

PD: No
Web dedicada por completo al surf. Hablamos de tablas de surf, videos de surf, fotos, juegos y mucha información sobre como aprender a surfear, spots famosos como mundaka, pipeline y zonas como vizcaya, surf españa, sopelana y mucho más. Trucos y peligros del surf. A que esperas? Entra en  Surf

kasiko

#3
Cita de: Tyrz en 12 Enero 2011, 08:58 AM
Gracias me has sido muy útil.

PD: No

A ver si esto te resulta mas util... tanto para almacenar datos en un array/vector/arreglo como para recuperar datos, se tiene que hacer a traves de un indice...

Dime que es lo que hace esta instruccion:
Citar
while(c!=' '){
                  ....
                  i++; // <-- ¿¿¿¿????
                  ....
                }



PD: es recomendable leer esto http://foro.elhacker.net/java/como_redactar_tu_codigo_para_exponer_dudas-t315512.0.html
Nos vemos...


Tyrz

solo estaba probando porq no pasa de ahi, en realidad es


while(c!='\n'){
                while(c==' '){
                    c=(char)System.in.read();
                }
                while((c!=' ')&&(c!='.')&&(c!='\n')){
                    System.out.println("Aqui llega");
                    frases[l].caracteres[i]=c;
                    System.out.println("Aqui NO");
                   
                    i++;
                    c=(char)System.in.read();
                }
                i


la cosa es que ni siquiera me deja ver el "aqui no" :S
Gracias!
Web dedicada por completo al surf. Hablamos de tablas de surf, videos de surf, fotos, juegos y mucha información sobre como aprender a surfear, spots famosos como mundaka, pipeline y zonas como vizcaya, surf españa, sopelana y mucho más. Trucos y peligros del surf. A que esperas? Entra en  Surf

kasiko

#5
a ver si esto te aclara las cosas



/**
*
* @author kasiko
*/
public class NewClass1 {

    private static final int tamaño = 20;

    public static void main(String[] args) {
        char[] a = new char[tamaño];

        //metemos datos
        for (int i = 0; i < tamaño; i++) {
            a[i] = (char) ('a' + i);
        }

        //sacamos datos
        for (int i = 0; i < tamaño; i++) {
            System.out.println("Posicion: " + i + " valor: " + a[i]);
        }
    }
}


Nos vemos...


Debci

Te lo esta diciendo el compañero...
Ese indice, por mucho que lo cambies si no lo asignas al array, es como gritar enmedio del mar...

Saludos

ChavalChavito

Aver si te entendi lo q qieres hacer.. suponiendo que el arreglo ya esta cargado asi lo recorrerias ..

for ( int i = 0; i < arregloChar.length; i ++ ){
   if ((arregloChar [ i ] !=' ')&&(arregloChar [ i ] ='.')&&(arregloChar [ i ]! ='\n'))
        System.out.println("Aqui llega");
   else         
        System.out.println("Aqui no llega");
   
}
Y si lo q tu qieres es ir analizando x cada vez q tecleas, mas facil inclusive, lo haces justo despues d hacer la lectura :S

Tyrz

no lo habeis entendido del todo, el problema esq cuando llega aqui:

frases[1].caracteres[1]=c;

Se queda parado, por eso puse lo de "Aqui llega", "Aqui no" porq aunq el "aqui no" está dentro del bucle no lo muestra ni una vez. En cambio el "aqui llega" aparece una vez.

El problema no es el indice ya que puse 1 solo por probar, para ver si no se quedaba parado como ya digo pero hace lo mismo.

De todas formas hice el programa sin este array de otro array ya está terminado.

Gracias a todos de todas formas!
Web dedicada por completo al surf. Hablamos de tablas de surf, videos de surf, fotos, juegos y mucha información sobre como aprender a surfear, spots famosos como mundaka, pipeline y zonas como vizcaya, surf españa, sopelana y mucho más. Trucos y peligros del surf. A que esperas? Entra en  Surf

kasiko

Cita de: Tyrz en 20 Enero 2011, 14:49 PM
....

De todas formas hice el programa sin este array de otro array ya está terminado.

Gracias a todos de todas formas!

Fenomenal  :rolleyes:
Nos vemos...