Como se leería estos en palabra llanas

Iniciado por angra, 26 Julio 2012, 10:27 AM

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

angra

Hola este es mi primer tema quitando la presentación ;D. Estoy aprendiendo java  :rolleyes: y hay algunas veces que no se leer trozos de java, os escribo a continuación el trozo de java:

String aux = sc.nextline();

if(aux==null || aux= "") aux="s"

si me podéis poner en palabras llanas lo que significa, lo agredeceré mucho?

Muchas gracias de antemano ;-)

Senior++

#1
Cita de: angra en 26 Julio 2012, 10:27 AM
Hola este es mi primer tema quitando la presentación ;D. Estoy aprendiendo java  :rolleyes: y hay algunas veces que no se leer trozos de java, os escribo a continuación el trozo de java:

String aux = sc.nextline();

if(aux==null || aux= "") aux="s"

si me podéis poner en palabras llanas lo que significa, lo agredeceré mucho?

Muchas gracias de antemano ;-)

Creo que eso esta mal ese código esta mal, creo pero si alguien lo verifica pues mejor...
Seria así:

SI aux es Null (comparacion) o aux es "" (osea sin ningún caracter)

Ese código tiene varios fallos (creo) por ejemplo este esta mal: aux= "" y este aux="s" no se por que esta afuera de la condición IF

Saludos
Vendo cuenta de LEAGUE OF LEGENDS lvl 30, EU west, muy barata

ChavalChavito

efectivamente el codigo esta mal, en la condicion del if nos deberia volver un booleano .. y tenemos un (booleano || String) lo cual no tiene ningun sentido...
al usar un solo igual estas asignando..
para entrar hacen falta las llaves tb..
if (<condicion>){
} else{
}

Pablo Videla

#3
Cita de: angra en 26 Julio 2012, 10:27 AM
Hola este es mi primer tema quitando la presentación ;D. Estoy aprendiendo java  :rolleyes: y hay algunas veces que no se leer trozos de java, os escribo a continuación el trozo de java:

String aux = sc.nextline();

if(aux==null || aux= "") aux="s"

si me podéis poner en palabras llanas lo que significa, lo agredeceré mucho?

Muchas gracias de antemano ;-)

Cuando un if no tiene llaves se lee como parte del if la linea que continua

el codigo esta mal porque en la segunda comparacion || aux="" realmente esta seteando un valor y no comparandolo tendria que ser ||aux ==""

osea si arreglas el codigo seria

Código (java) [Seleccionar]

if(aux==null || aux== "")
aux="s";


Si aux es nulo o si aux viene vacio, entonces seteamos el valor "s" a aux.

aunque mejor haría el if con las llaves, por buena costumbre xD

Código (java) [Seleccionar]

if(aux==null || aux== "") {
aux="s";
}



Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.

int_0x40

#4
Hola angra:

Como un agregado y considerando lo que ya te han dicho, me imagino que ya sabrás que un operador de asignación en ciertos lenguajes es = (es decir que asigna un valor a una variable dada), no confundir con el operador de comparación de igualdad, que en muchos lenguajes se representa con ==, o el de identidad ===.

Entonces una sentencia como String aux = sc.nextline(); implica que le asignas el valor que retorne la función sc.nextline() a la variable aux,  en lenguajes de tipos de datos estrictos debe ser String el valor que se asigne a una variable de tipo String.

En cambio si ves expresiones como aux==null estás comparando si es igual el valor de aux con un valor nulo, el resultado será verdadero o falso, esa condición es la que da razón de ser a la sentencia IF. Si tienes aux==null || aux== "", es una condición en la que se compara lógicamente entre una U otra expresión (operador OR) , es decir quieres saber si la condición aux igual a null O aux igual a cadena vacía es verdadera o falsa, dependiendo de si una de las dos es verdadera se asignará la cadena "s" a la variable aux.

Saludos.
"The girl i love...she got long black wavy hair "

angra

Muchas gracias a todos por la explicación,  ;-) ahora sé un poco más . La verdad es que estaba bloqueado, no lo entendía. Tengo más dudas pero pocoa poco que no quiero ser pesao   :rolleyes:. Lo dicho gracias  ;)

Senior++

#6
Mira angra  te explico un poco más el IF



Por ejemplo quieres hacer un programa que si la variable numero sea igual a 3 te muestre un mensaje que la variable numero valga 3 ok?
seria así:

class Reloj{
   public static void main(String[]args){
  int numero=3; //Aquí estamos igualando...
         
 if(numero==3){ //Aquí estamos comparando... si esto devuelve un valor true se cumple la condición si devuelve un valor false no se cumple...      
System.out.println("aquí imprimo por consola SOLO SI EL VALOR SE CUMPLE:"+numero);  //El + en este ejercicio sirve para concatenar palabras osea unirlas.
 }
 else{ //Aquí solo imprimira SOLO si la condicion devuelve un valor false, osea si numero no tiene de valor 3
 System.out.println("aquí imprimo por consola SOLO SI EL VALOR SE CUMPLE:"+numero);
 }
   }
}


Ahora te pondre otro código y piensa que crees que saldrá:

class Reloj{
   public static void main(String[]args){
  int numero=2; //Aquí estamos igualando...
         
 if(numero==3){ //Aquí estamos comparando... si esto devuelve un valor true se cumple la condición si devuelve un valor false no se cumple...      
System.out.println("aquí imprimo por consola SOLO SI EL VALOR SE CUMPLE:"+numero);  //El + en este ejercicio sirve para concatenar palabras osea unirlas.
 }
 else{ //Aquí solo imprimira SOLO si la condicion devuelve un valor false, osea si numero no tiene de valor 3
 System.out.println("aquí imprimo por consola SOLO SI EL VALOR NO CUMPLE:"+numero);
 }
   }
}


Bueno te explico un poco existen:

> mayor que Ej: if (numero>numero2){} (obviamente el código sigue pero ya solo depende de ti)
< menor que Ej: if (numero<numero2){}
== Igual que Ej: if (numero==numero2){}
!=  es distinto Ej:if (numero!=numero2){}
||  o (si,significa o) Ej: if(numero=3 || numero2 = 5){} Aquí uno de los dos tiene que ser true para que funcione ya depende de ti.
&& y (Si,significa y) Ej: if(numero=3 && numero2 = 5) {}Aqui los dos se tienen que cumplir, si no devuelve un valor false.

En cambio hay otro para las variables boleanas
! No (si, significa no) if(!numero)  (obviamente tienes que crear una variable bolean que sería asi: boolean numero

Bueno espero que estén todos a lo mejor no me acorde de alguno pero si tienes alguna duda dimelo

Vendo cuenta de LEAGUE OF LEGENDS lvl 30, EU west, muy barata

angra

Hola Senior, viendo el último codigo creo que el resultado es lo que ponga en else ya que la condición no se cumple, siendo el valor del numero=2 y no es 3 como en la condición.
De nuevo gracias  ;)

Valkyr

Una cosa que me parece nadie ha dicho. En Java las comparaciones de cadenas de caracteres (String) se realizan con el método equals de dicha clase. Es decir, el código debería ser:

Código (java) [Seleccionar]

String aux = sc.nextline();

if(aux==null || aux.equals(""))
    aux="s"


Compararlo con null con el operador '==' si es correcto, pero para compararlo con cualquier otra cadena de caracteres (incluida la cadena vacía, que es la del ejemplo) se debe hacer con el método equals.

Saludos.

Pablo Videla

A lo mejor es una mala practica compararlo con ==""  pero de que se puede, se puede  :xD