¿Hay otra manera de utilizar este Booleano en java 11?

Federico Martínez Steidl:

Por lo tanto, he estado java de aprendizaje para los dos días y entró en un mensaje de error al compilar el código de abajo. Lo que he intentado hacer es un sencillo programa que recibe un nombre de la entrada del sistema y luego quiere saber si ese es el nombre que desea pasar. Funcionado a la perfección. Así que quería modificarlo: Si ese no es el nombre deseado, usted debería ser capaz de volver a escribir el nombre de todas las veces que desee. Es por eso que tengo el booleano "confirmaron" en ese país, junto con el bucle while. Cuando se compila, me sale el mensaje de error "El valor de la variable local confirmó que no se utiliza" para el "confirmó" booleano, a pesar de que estoy declarando claramente y su uso. He intentado simplemente moviendo la declaración inicial alrededor y no cambió nada. ¿Alguien sabe cómo arreglar eso o volver a hacer mi bucle por lo que no será ningún problema?

FYI, estoy usando Código VS con el paquete de extensión de Java.

import java.util.*;

public class Name{

public static void main(String[] args){

    Scanner sc = new Scanner(System.in);

    try{

    boolean confirmed = false;

    while(confirmed = false){
    System.out.println("What's your name again?");
    String enteredName = sc.nextLine();
    System.out.println("So, your name is " + enteredName + "?\nEnter 'yes' to confirm or 'no' to type a new name.");
    String confirmation = sc.nextLine();

    if(confirmation.equalsIgnoreCase("yes") || confirmation.equalsIgnoreCase("yes.")){
    System.out.println("Confirmed, " + enteredName + ".\n\nNow launching.");
    confirmed = true;
    }

    else if(confirmation.equalsIgnoreCase("no") || confirmation.equalsIgnoreCase("no.")){
    System.out.println("Please enter a new name.");
    confirmed = false;    
           }

        }

    }
    finally{
     sc.close();
    }
}

}

Arvind Kumar Avinash:

No debe dar el cierre Scannerpara el System.in, ya que también se cierra System.in. Aparte de esto, se puede simplificar el código de la siguiente manera:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String confirmation, enteredName;
        do {
            System.out.print("What's your name again?");
            enteredName = sc.nextLine();
            System.out
                    .print("So, your name is " + enteredName + "?\nEnter 'yes' to confirm or 'no' to type a new name.");
            confirmation = sc.nextLine();
            if (confirmation.equalsIgnoreCase("yes") || confirmation.equalsIgnoreCase("yes.")) {
                System.out.println("Confirmed, " + enteredName + ".\n\nNow launching.");
            }
        } while (confirmation.equalsIgnoreCase("no") || confirmation.equalsIgnoreCase("no."));
    }
}

Un análisis de la muestra:

What's your name again?Arvind
So, your name is Arvind?
Enter 'yes' to confirm or 'no' to type a new name.no
What's your name again?Kumar
So, your name is Kumar?
Enter 'yes' to confirm or 'no' to type a new name.no.
What's your name again?Avinash
So, your name is Avinash?
Enter 'yes' to confirm or 'no' to type a new name.yes
Confirmed, Avinash.

Now launching.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=367571&siteId=1
Recomendado
Clasificación