Le ho provate tutte (Password convalid)

di il
2 risposte

Le ho provate tutte (Password convalid)

Ho iniziato da poco a scrivere programmi e non riesco ad andare avanti. Ho creato questo piccolo programma. Quello che volevo fare era che l'utente mettesse la password e il computer valutasse se vera o falsa e nel caso fosse falsa di ritentare. Le ho provate tutte e sono ad un punto morto. Aiuto per favore.




import java.util.Scanner;

import javax.swing.JOptionPane;

public class Conversation_password {

public static void main(String[] args) {
Scanner sc = new Scanner (System.in);

int answer = JOptionPane.showConfirmDialog(null, "Login?");

if(answer==0) {
String passwordkey = JOptionPane.showInputDialog(null, "Password: ");
int password = Integer.parseInt(passwordkey);
int retry = 0;

if (password==1596) {
JOptionPane.showMessageDialog(null, "Password Valid. Wellcome");
} else if (password!=190899){
JOptionPane.showMessageDialog(null, "Not valid!");
while (retry!=password) {
JOptionPane.showMessageDialog(null, "Not valid!");
retry = Integer.parseInt(passwordkey);

}
}
}else if (answer==1) {
int exit = JOptionPane.showConfirmDialog(null, "Exit?");
if (exit==0) {
JOptionPane.showMessageDialog(null, "Bye!");
} else if (exit==1) {
JOptionPane.showMessageDialog(null, "Retry");
}
}else if(answer==2) {
JOptionPane.showMessageDialog(null, "Return?");
}

}

}

2 Risposte

  • Re: Le ho provate tutte (Password convalid)

    Canna Frank ha scritto:


    Quello che volevo fare era che l'utente mettesse la password e il computer valutasse se vera o falsa e nel caso fosse falsa di ritentare. Le ho provate tutte e sono ad un punto morto. Aiuto per favore.
    Il codice è un pochino fumoso. Nel senso che fa di "più" di quello che in realtà basterebbe.
    Per poter ritentare l'input serve un "ciclo". Un ciclo l'hai messo (quel while) ma è nel posto e modo sbagliati.

    A parte il resto (Bye ecc... che è a tua scelta) la parte dell'input e ripetizione basta che sia così (abbozzato!):
    boolean valida;
    
    do {
        // 1) chiedi password ...
        // 2a) se è corretta: mostri il successo; metti valida a true
        // 2b) altrimenti se non è corretta: mostri il fallimento; metti valida a false
    } while (!valida);
    
    // se arrivi qui, la password è valida
  • Re: Le ho provate tutte (Password convalid)

    Cosa significa che una password sia vera o falsa ? Una password e' corretta o sbagliata, anyway, assumendo che questo sia un esercizio super generico e super semplicistico, ti ho leggermente corretto, il resto te lo lascio sistemare a te :
    public static void main(String[] args) {
        Scanner sc = new Scanner (System.in);
        
        int answer = JOptionPane.showConfirmDialog(null, "Login?");
        
        if(answer==0) {
            String passwordkey = JOptionPane.showInputDialog(null, "Password: ");
            int password = Integer.parseInt(passwordkey);
            int retry = 0;
            
            while(password != 1596) {
                JOptionPane.showMessageDialog(null, "Invalid password, retry.");
                passwordkey = JOptionPane.showInputDialog(null, "Password: ");
                password = Integer.parseInt(passwordkey);
            }
            JOptionPane.showMessageDialog(null, "Good password! Bye!");
            System.exit(0);
        
        }else if (answer==1) {
            int exit = JOptionPane.showConfirmDialog(null, "Exit?");
            if (exit==0) {
            JOptionPane.showMessageDialog(null, "Bye!");
            } else if (exit==1) {
            JOptionPane.showMessageDialog(null, "Retry");
            }
        }else if(answer==2) {
            JOptionPane.showMessageDialog(null, "Return?");
        }
    
    }
Devi accedere o registrarti per scrivere nel forum
2 risposte