Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    esercizio somma e differenza interi

    Ciao a tutti,
    ho fatto questo programmino che legge un intero (a > 0) e poi propone iterativamente all’utente un menu per sommare un valore, sottrarre un valore o uscire dal programma.
    Non riesco a capire perchè non va. Abbiate pazienza, ho inziato da pochissimo. :-(

    public class Esercizio {

    public static void main (String args[]) {

    int a = Input.readInt("Inserisci un numero: ");

    while (a <= 0) {

    a = Input.readInt("Inserisci un numero a: ");
    }

    String risposta = Input.readString("Vuoi sommare un valore? (si o no):");
    if (risposta == "si") {
    int b = Input.readInt("Inserisci un numero b: ");
    int somma = a+b;
    System.out.println("a+b="+ somma); }

    else {
    String risposta2 = Input.readString("Vuoi sottrarre un valore? (si o no): ");
    if (risposta2 == "si") {
    int b = Input.readInt("Inserisci un numero b: ");
    int differenza = a-b;
    System.out.println("a-b="+ differenza); }

    else {

    String risposta3 = Input.readString("Vuoi uscire dal programma? (si o no): ");
    if (risposta3 == "si") {
    System.out.println("Grazie e arrivederci.");
    }

    }

    }

    }


    }

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    1. Indenta il codice e usa il tag CODE quando lo posti.
    2. Le stringhe (e tutti gli oggetti) si confrontano con il metodo equals e non con ==.
    3. Si scrive e non si
    4. Non c'è un ciclo principale: se alla domanda "Vuoi uscire dal programma?" l'utente digita "no", il programma si chiude lo stesso.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Originariamente inviato da Alex'87
    1. Indenta il codice e usa il tag CODE quando lo posti.
    2. Le stringhe (e tutti gli oggetti) si confrontano con il metodo equals e non con ==.
    3. Si scrive e non si
    4. Non c'è un ciclo principale: se alla domanda "Vuoi uscire dal programma?" l'utente digita "no", il programma si chiude lo stesso.
    So come si scrive sì, era per fare prima mentre scrivevo il programma, grazie cmq della precisazione. XD
    A proposito, se un utente ignorante mi digita si (senza accento), o qualsiasi altra stringa, come risolvo?

    Il ciclo lo faccio adesso, devo fare una cosa alla volta altrimenti mi ci perdo. E' meglioun while, giusto?

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Un do-while è l'ideale.

    Una cosa del genere:

    codice:
    public class Esercizio { 
        public static void main(String[] args) {
            String command = null;
    
            int number1;
            int number2;
            int result;
    
            do {
                do {
                    number1 = Input.readInt("Inserisci un numero (maggiore di zero): ");
                } while (number1 <= 0);
    
                command = Input.readString("Vuoi sommare un valore? (si o no): ");
                if (command.equalsIgnoreCase("si")) {
                    number2 = Input.readInt("Inserisci il numero da sommare: ");
                    result = number1 + number2;
    
                    System.out.println(number1 + " + " + number2 + " = " + result);
                } else {
                    command = Input.readString("Vuoi sottrarre un valore? (si o no): ");
                    if (command.equalsIgnoreCase("si")) {
                        number2 = Input.readInt("Inserisci il numero da sottrarre: ");
                        result = number1 - number2;
                        
                        System.out.println(number1 + " - " + number2 + " = " + result);
                    }
                }
    
                command = Input.readString("Vuoi uscire dal programma? (si o no): ");
            } while (command.equalsIgnoreCase("no"));
        } 
    }
    Per in controllo dei caratteri, non conosco la classe Input (non è una classe standard di Java), magari ha già dei metodi di verifica e ripulitura dell'input... Dai un'occhio alla Javadoc della classe
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

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.