Eliminar archivo, programa simple

Iniciado por JuszR, 4 Diciembre 2012, 10:01 AM

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

JuszR

Que esta mal en este programa?
Código (java) [Seleccionar]

import java.util.Scanner;
import java.io.File;
public class BorraArchivo {

public static void main(String[] args) {

System.out.println("Type the file name you'd like to delete");

Scanner readInput = new Scanner(System.in);
String nombreArchivo = readInput.next();
File archivo = new File(nombreArchivo);
char respuesta;

do {
System.out.println("R u sure that u want to delete " + nombreArchivo + "?");
respuesta = readInput.findWithinHorizon(".", 0).charAt(0);
} while (respuesta != 'y' || respuesta != 'n');

if (respuesta == 'y') {
System.out.println("Deleting..." + nombreArchivo);
archivo.delete();
System.out.println(nombreArchivo + " has been deleted.");
} else {
System.out.println("Fine, just kidding!");
}


}

}


Cuando pongo y o n, sigue todavia en el do-while... :-\
- No programming language is perfect. There is not even a single best language; there are only languages well suited or perhaps poorly suited for particular purposes. [Herbert Mayer]

$Edu$

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!

JuszR

- No programming language is perfect. There is not even a single best language; there are only languages well suited or perhaps poorly suited for particular purposes. [Herbert Mayer]