Foro de elhacker.net

Programación => Java => Mensaje iniciado por: JuszR en 4 Diciembre 2012, 10:01 am



Título: Eliminar archivo, programa simple
Publicado por: JuszR en 4 Diciembre 2012, 10:01 am
Que esta mal en este programa?
Código
  1. import java.util.Scanner;
  2. import java.io.File;
  3. public class BorraArchivo {
  4.  
  5. public static void main(String[] args) {
  6.  
  7. System.out.println("Type the file name you'd like to delete");
  8.  
  9. Scanner readInput = new Scanner(System.in);
  10. String nombreArchivo = readInput.next();
  11. File archivo = new File(nombreArchivo);
  12. char respuesta;
  13.  
  14. do {
  15. System.out.println("R u sure that u want to delete " + nombreArchivo + "?");
  16. respuesta = readInput.findWithinHorizon(".", 0).charAt(0);
  17. } while (respuesta != 'y' || respuesta != 'n');
  18.  
  19. if (respuesta == 'y') {
  20. System.out.println("Deleting..." + nombreArchivo);
  21. archivo.delete();
  22. System.out.println(nombreArchivo + " has been deleted.");
  23. } else {
  24. System.out.println("Fine, just kidding!");
  25. }
  26.  
  27.  
  28. }
  29.  
  30. }
  31.  

Cuando pongo y o n, sigue todavia en el do-while... :-\


Título: Re: Eliminar archivo, programa simple
Publicado por: $Edu$ en 4 Diciembre 2012, 14:03 pm
No pongas un Or, pone un And. Tu codigo ejecuta el bucle MIENTRAS esa condicion de adentro es verdadera, osea el:
(respuesta != 'y' || respuesta != 'n') y si por ejemplo ingresas 'j', da True asique continua, si ingresas 'y' la primer condicion es falsa pero la segunda es verdadera ya que 'y' es distinto de 'n' pero como es un Or la condicion final es True y entonces continua el bucle.
Pero si pones con un And, tendra que ser True las 2 condiciones si o si.

Hace la prueba porque no he dormido y te puedo estar diciendo cualquier cosa en este momento xD Saludos!


Título: Re: Eliminar archivo, programa simple
Publicado por: JuszR en 4 Diciembre 2012, 19:40 pm
 :xD Grax.