switch dia de la semana(java)
-
ForoParalelo: Miembro
switch dia de la semana(java)
Última edición por Paralelolelo; 19/11/2014 a las 14:48
-
ForoParalelo: Miembro
-
ForoParalelo: Miembro
Usa el debug y ve paso a paso para ver donde te falla o si no te está entrando a algún método que debería, a mi me ha salvado de romperme la cabeza mil veces.
-
ForoParalelo: Miembro

Iniciado por
Cazelot
Usa el debug y ve paso a paso para ver donde te falla o si no te está entrando a algún método que debería, a mi me ha salvado de romperme la cabeza mil veces.
no, si la cosa es que no da ningún error, y los métodos me los implementa pero tiene que estar mal el código ya que no hace lo que yo quiero que haga quizás no sea con un system.out.println
-
ForoParalelo: Miembro

Iniciado por
Paralelolelo
no, si la cosa es que no da ningún error, y los métodos me los implementa pero tiene que estar mal el código ya que no hace lo que yo quiero que haga quizás no sea con un system.out.println
Te vuelvo a decir lo mismo, usa el debug, ve paso a paso, mira en qué momento tu código hace algo que no quieres que haga.
-
Poleman ¯\_(ツ )_/¯
getDiaSemana que coño es?
-
Poleman ¯\_(ツ )_/¯
//con esto sacas el dia que es
Calendar calendar = Calendar.getInstance();
int dia = calendar.get(Calendar.DAY_OF_WEEK);
//cada dia es un numero que ni te hace falta saber, usando constantes:
switch (dia) {
case Calendar.SUNDAY:
// imprime D
.
.
.
.
.
case Calendar.MONDAY:
// imprime L
}
-
ForoParalelo: Miembro
No tengo idea de java, pero diria que le estas haciendo que imprima en consola la letra (no estas asignando valores) y despues estas diciendo que te return dia, el cual no has cambiado de valor, quizas en cada case tengas que igualar day al string que te interese. Estoy 100% seguro de que no es asi, pero si lo borro sentiria que he perdido unos segundos de mi vida, asique doy a enviar antes que A borrar.
Última edición por micosil12; 18/11/2014 a las 19:49
-
Haxballero

Iniciado por
micosil12
No tengo idea de java, pero diria que le estas haciendo que imprima en consola la letra (no estas asignando valores) y despues estas diciendo que te return dia, el cual no has cambiado de valor, quizas en cada case tengas que igualar day al string que te interese. Estoy 100% seguro de que no es asi, pero si lo borro sentiria que he perdido unos segundos de mi vida, asique doy a enviar antes que ha borrar.
THIS. En el método toString se devuelve una cadena, no se imprime por consola.
-
ForoParalelo: Miembro

Iniciado por
AveFelix
THIS. En el método toString se devuelve una cadena, no se imprime por consola.
Y si no fuese el metodo toString ? no necesitaria igual el valor igualmente ? Pregunto desde la ignorancia.
-
ForoParalelo: Miembro
Yo creo que la opción de @Saceone es la mejor, si no sube el proyecto y pruebo
-
Haxballero

Iniciado por
micosil12
Y si no fuese el metodo toString ? no necesitaria igual el valor igualmente ? Pregunto desde la ignorancia.
Entonces ya dependería de la funcionalidad que le quieras dar al método. Si quieres que lo imprima el propio método o si quieres devolver la cadena a la función que la ha llamado para que sea ella quien lo imprima.
-
CurryWriter
Saceone lo ha hecho bien, pruébalo y dale las gracias.
De todas formas, si tienes dudas creo que te puedo copypastear un ejercicio que tengo igual.
-
Oing Oing
Es demasiado sencillo como para que te lo resuelva otra persona, te recomiendo hacerlo solo ya que si te empiezas a habituar a eso al principio te va a costar mucho progresar, te recomiendo utilizar técnicas de depuración de errores como poner println en varios sitios para asegurarte de que el programa realmente pasa por cada sitio.
-
ForoParalelo: Miembro

Iniciado por
Saceone
//con esto sacas el dia que es
Calendar calendar = Calendar.getInstance();
int dia = calendar.get(Calendar.DAY_OF_WEEK);
//cada dia es un numero que ni te hace falta saber, usando constantes:
switch (dia) {
case Calendar.SUNDAY:
// imprime D
.
.
.
.
.
case Calendar.MONDAY:
// imprime L
}
ahora es con DaayOfWeek el calendar lo han quitado en la version 8. El problema viene en lo que han dicho muchos usuarios en que cuando tengo un caso(Ej: MONDAY) le paso un System.out.println y creo que lo correcto seria asiganarle a MONDAY un constante L pero siempre que lo he intentado me daba error

Iniciado por
Saceone
getDiaSemana que coño es?
getDiaSemana es un atributo que hay en la clase que pide un dia de la semana y es de tipo DayOfWeek
-
Haxballero

Iniciado por
Paralelolelo
ahora es con DaayOfWeek el calendar lo han quitado en la version 8. El problema viene en lo que han dicho muchos usuarios en que cuando tengo un caso(Ej: MONDAY) le paso un System.out.println y creo que lo correcto seria asiganarle a MONDAY un constante L pero siempre que lo he intentado me daba error
getDiaSemana es un atributo que hay en la clase que pide un dia de la semana y es de tipo DayOfWeek
Tienes que crear una nueva variable string a la que le asignes la L, la M o lo que corresponda, y luego devolverla en el return.
-
ForoParalelo: Miembro

Iniciado por
AveFelix
Tienes que crear una nueva variable string a la que le asignes la L, la M o lo que corresponda, y luego devolverla en el return.
en ello ando liado
, muchas gracias shur!
-
ForoParalelo: Miembro

Iniciado por
AveFelix
Tienes que crear una nueva variable string a la que le asignes la L, la M o lo que corresponda, y luego devolverla en el return.
Coño es verdad, que es un toString
Estoy oxidado
-
ForoParalelo: Miembro
dayofweek es el enum? Ese switch no se ejecuta nunca ya que nunca coincide con el valor por poner los dias de la semana todo en mayusculas, pon un default y veras como se ejecutara.
Luego lo que haces es devolver el dia.
Otra cosa mas.....¿Para que cojones redefines el metodo toString para hacer esto?
-
ForoParalelo: Miembro

Iniciado por
Avatarx
dayofweek es el enum? Ese switch no se ejecuta nunca ya que nunca coincide con el valor por poner los dias de la semana todo en mayusculas, pon un default y veras como se ejecutara.
Luego lo que haces es devolver el dia.
Otra cosa mas.....¿Para que cojones redefines el metodo toString para hacer esto?
si DayOfWeek es un tipo que ya viene en java, voy a hacer lo del default y lo del toString es porque lo pide el trabajo xD
-
ForoParalelo: Miembro

Iniciado por
Avatarx
dayofweek es el enum? Ese switch no se ejecuta nunca ya que nunca coincide con el valor por poner los dias de la semana todo en mayusculas, pon un default y veras como se ejecutara.
Luego lo que haces es devolver el dia.
Otra cosa mas.....¿Para que cojones redefines el metodo toString para hacer esto?
Ah vale, he midado la documentacion y todos los dias son en mayusculas.
No toco mucho java, ¿Pero los switch no funcionaban solo con valores int y char?
-
ForoParalelo: Miembro
¿Por qué no añades un atributo de tipo caracter a la clase? Este atributo sería por ejemplo:
private char l; // letra inicial de la semana
public char toString(){
DayOfWeek dia = getDiaSemana();
switch (dia){
case MONDAY:
this.l = 'L';
break;
case TUESDAY:
this..l = 'M';
break;
case THURSDAY:
this.l = 'X';
break;
case WEDNESDAY:
this.l = 'J';
break;
case FRIDAY:
this.l = 'V';
break;
case SATURDAY:
this.l = 'S';
break;
case SUNDAY:
this.l = 'D';
break;
}
return l;
}
Si lo quieres con string, sería lo mismo pero en vez de char, string.
-
ForoParalelo: Miembro

Iniciado por
Diego.26
¿Por qué no añades un atributo de tipo caracter a la clase? Este atributo sería por ejemplo:
private char l; // letra inicial de la semana
public char toString(){
DayOfWeek dia = getDiaSemana();
switch (dia){
case MONDAY:
this.l = 'L';
break;
case TUESDAY:
this..l = 'M';
break;
case THURSDAY:
this.l = 'X';
break;
case WEDNESDAY:
this.l = 'J';
break;
case FRIDAY:
this.l = 'V';
break;
case SATURDAY:
this.l = 'S';
break;
case SUNDAY:
this.l = 'D';
break;
}
return l;
}
Si lo quieres con string, sería lo mismo pero en vez de char, string.
me encantaria poder añadirlo pero las clases ya vienen predefinidas, yo solo puedo hacer constructores hashcode toString...
-
ForoParalelo: Miembro

Iniciado por
Diego.26
¿Por qué no añades un atributo de tipo caracter a la clase? Este atributo sería por ejemplo:
private char l; // letra inicial de la semana
public char toString(){
DayOfWeek dia = getDiaSemana();
switch (dia){
case MONDAY:
this.l = 'L';
break;
case TUESDAY:
this..l = 'M';
break;
case THURSDAY:
this.l = 'X';
break;
case WEDNESDAY:
this.l = 'J';
break;
case FRIDAY:
this.l = 'V';
break;
case SATURDAY:
this.l = 'S';
break;
case SUNDAY:
this.l = 'D';
break;
}
return l;
}
Si lo quieres con string, sería lo mismo pero en vez de char, string.
me encantaria poder añadirlo pero las clases ya vienen predefinidas, yo solo puedo hacer constructores hashcode toString...
-
ForoParalelo: Miembro

Iniciado por
Paralelolelo
me encantaria poder añadirlo pero las clases ya vienen predefinidas, yo solo puedo hacer constructores hashcode toString...
Bueno, pues sin atributo, lo devuelves directamente:
public string toString(){
string letra;
DayOfWeek dia = getDiaSemana();
switch (dia){
case MONDAY:
letra = "L";
case TUESDAY:
letra = "M";
case THURSDAY:
letra = "J";
case WEDNESDAY:
letra = "X";
case FRIDAY:
letra = "V";
case SATURDAY:
letra = "S";
case SUNDAY:
letra = "D";
}
return letra;
}
-
ForoParalelo: Miembro

Iniciado por
Diego.26
Bueno, pues sin atributo, lo devuelves directamente:
public string toString(){
string letra;
DayOfWeek dia = getDiaSemana();
switch (dia){
case MONDAY:
letra = "L";
case TUESDAY:
letra = "M";
case THURSDAY:
letra = "J";
case WEDNESDAY:
letra = "X";
case FRIDAY:
letra = "V";
case SATURDAY:
letra = "S";
case SUNDAY:
letra = "D";
}
return letra;
}
FUNCIONA FUNCIONA!!! TIO MUCHÍSIMAS GRACIAS JODER ERES UN MÁQUINA. Solo decirte que cuando creas el string letra lo inicializas como null. Eres un genio, besis de fresa
-
ForoParalelo: Miembro

Iniciado por
Paralelolelo
FUNCIONA FUNCIONA!!! TIO MUCHÍSIMAS GRACIAS JODER ERES UN MÁQUINA. Solo decirte que cuando creas el string letra lo inicializas como null. Eres un genio, besis de fresa
De nada, hombre, para eso estamos jajaj
Enviado desde mi Nexus 5 mediante Tapatalk
-
Haxballero

Iniciado por
Avatarx
Ah vale, he midado la documentacion y todos los dias son en mayusculas.
No toco mucho java, ¿Pero los switch no funcionaban solo con valores int y char?
Desde la version 1.7 esta habilitado el pattern matching con strings en los switch.
Permisos de publicación
- No puedes crear nuevos temas
- No puedes responder temas
- No puedes subir archivos adjuntos
- No puedes editar tus mensajes
-
Reglas del foro
▲
▼
Atajos de Navegación Disponibles