Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Tornare a parte del codice

    Premetto che ho iniziato da poco il java stò facendo qualche programma usando Switch e If ... ho una cosa tipo questa :

    codice:
    System.out.println("Scegli 1 o 2");
    switch (scelta) {
    		case 1:
                     .....
                    break;
                     case 2:
                     .....
                    break;
    Io vorrei che se ad esempio l'utente sceglie l'opzione 2 , dopo aver eseguito le istruzioni , può tornare nuovamente alla scelta ovvero

    codice:
    System.out.println("Scegli 1 o 2");
    senza dover chiudere e riaprire il programma... come faccio???

    p.s. lo sò manca scanner etc

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Tornare a parte del codice

    Originariamente inviato da frankikko
    Io vorrei che se ad esempio l'utente sceglie l'opzione 2 , dopo aver eseguito le istruzioni , può tornare nuovamente alla scelta
    Conosci i cicli for, do-while, while? Ti serve un "ciclo".
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Grazie ! Ho risolto con while

    codice:
    int i=1;
    	 while(i<2){
              .....
              }
    Non ho messo l'incremento i++ in modo da poter eseguire le istruzioni tutte le volte che uno vuole

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da frankikko
    Grazie ! Ho risolto con while

    codice:
    int i=1;
    	 while(i<2){
              .....
              }
    Ehm ... no. A parte che così ha poco senso anche se tecnicamente funzionante. Sarebbe molto più logico e appropriato un do-while. Nella condizione del while potresti mettere il test per vedere se non è la scelta di uscita (ne avrai una ... no?).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Si :P Appena fatto con do-while ...

    un'altro problemino >.< stò usando Eclipse , quando provo a fare Export -> Runnable Jar File etc etc il file .jar che crea non parte .. ho provato anche con fatjar ma è lo stesso... doppio click ma non "succede niente"

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da frankikko
    doppio click ma non "succede niente"
    Un jar avviato con doppio click su Windows fa eseguire javaw.exe che è il launcher della JVM senza la console visibile.

    Visto che la tua è una applicazione da "console" ..... avvialo da una console cioè da una finestra di un "prompt dei comandi".
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Il vecchio e grezzo prompt

    Stò facendo un un programma che "simula" un bancomat cioè l'utente preleva/deposita i soldi e può vedere il bilancio attuale ...

    codice:
    System.out.println("Operazioni: #1 Preleva | #2 Deposita | #3 Bilancio");
    			Scanner k=new Scanner(System.in);
    			BankAccount b= new BankAccount();
    			scelta=k.nextInt();
    			switch (scelta) {
    				case 1: 
    						
    						System.out.println("Quanto vuoi prelevare?");
    						amount=k.nextDouble();
    						if (amount <= balance){
    						b.preleva(amount);
    						System.out.println("Prelievo effettuato."+ b.getBalance());
    						
    						} else {
    							System.out.println("Valore da prelevare maggior del denaro presente in banca.");
    						}
    					break;
    					
    				case 2: 
    						System.out.println("Quanto vuoi depositare?");
    						amount=k.nextDouble();
    						balance = b.getBalance();
    						balance = balance + amount;
    						System.out.println("Deposito effettuato");
    					break;
    				case 3:
    						System.out.println("Bilancio attuale: "+b.getBalance());
    					break;
    		
    }
    codice:
    public class BankAccount {
    	double balance;
    	
    	public BankAccount() {
    		balance = 1000;
    	}
    	
    	public void preleva(double amount) {
    		balance = balance - amount;
    		}
    	
    	public void deposita(double amount) {
    		balance = balance - amount;
    	}
    	
    	public double getBalance(){
    		return balance;
    	}
    	
    }
    Le "operazioni" funzionano , il problema è che se io prelevo 100 , quindi ho 900 nel "bancomat" ... però se prelevo una seconda volta ad esempio 50 mi risultano 950 e non 850 ... cioè la variabile balance ogni volta torna a 1000 ... come faccio a far memorizzare l'ultimo valore?
    Sicuramente è una cosa stupida facilmente risolvibile ... ma essendo agli inizi ho ancora molta confusione in testa tra metodi , classi oggetti etc >_< stò seguendo "Concetti di informatica e fondamenti di Java" che ha proposto questo esempio che ho deciso di migliorare mettendo uno switch e altre cosettine ...

    Grazie ancora andbin per la disponibilità

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Non ho controllato tutto tutto ma ....

    Originariamente inviato da frankikko
    codice:
    						System.out.println("Quanto vuoi prelevare?");
    						amount=k.nextDouble();
    						if (amount <= balance){
    In questo pezzo usi 'balance' (la variabile) che potrebbe avere un valore "vecchio", non il "vero" balance nell'oggetto BankAccount.

    Originariamente inviato da frankikko
    codice:
    	public void deposita(double amount) {
    		balance = balance - amount;
    	}
    Qui a rigor di logica dovrebbe essere un +.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Qui a rigor di logica dovrebbe essere un +.
    Si...ho corretto

    Per quanto riguarda il balance che torna a 1000 ... ho messo anche

    if (amount <= b.getBalance())

    in modo che lo prende in quel momento il valore attuale del balance ... ma niente ... ho provato di tutto tra metodi e main ma niente... è 1 ora che ci sbatto la testa

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da frankikko
    in modo che lo prende in quel momento il valore attuale del balance ... ma niente ... ho provato di tutto tra metodi e main ma niente... è 1 ora che ci sbatto la testa
    Quale è lo scenario che ancora non va? Tra l'altro ho letto meglio il tuo codice di prima: nella opzione 2 (deposito) vai ad aggiornare la variabile 'balance' ... non lo stato del BankAccount.

    Vuoi fare le cose in modo "pulito"? Allora cerca di incapsulare e separare meglio le cose. Ad esempio in BankAccount puoi mettere es.:
    - Un metodo prelievoPossibile che restituisce un boolean per dire se il prelievo è possibile.
    - E/o fare in modo che preleva restituisca un boolean per dire se è stato fatto oppure no
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.