Visualizzazione dei risultati da 1 a 3 su 3

Discussione: problemi su codice

  1. #1

    problemi su codice

    Ciao ragazzi,
    ho un problema con questo codice:

    import java.io.*;

    public class CALCOLA {
    static double operando1;
    static double operando2;
    static String operatore;
    static double RISULTATO;

    void PRENDIADDENDO(double operando) { //prende numero e lo converte da stringa a intero
    String stringa = ""; //inizializzo stringa vuota
    try { BufferedReader flussoInput = new
    BufferedReader(new InputStreamReader(System.in));
    stringa = flussoInput.readLine();
    }
    catch (Exception e){ System.out.println("Errore: " + e + " in input");
    System.exit(0);
    }
    operando = Double.valueOf(stringa).doubleValue();
    return;
    }

    void PRENDISEGNO() { //prende operatore
    String stringa = "";
    try { BufferedReader flussoInput = new
    BufferedReader(new InputStreamReader(System.in));
    stringa = flussoInput.readLine();
    }
    catch (Exception e){ System.out.println("Errore: " + e + " in input");
    System.exit(0);
    }
    operatore = stringa;
    return;
    }

    boolean SVOLGICALCOLO() {
    if ( operatore.compareTo("+") == 0) //se 0 che viene da compareTo e' uguale a 0 da' true
    { RISULTATO = operando1 + operando2;
    return true;
    }
    else if ( operatore.compareTo("-") == 0)
    { RISULTATO = operando1 - operando2;
    return true;
    }
    else if ( operatore.compareTo("*") == 0)
    { RISULTATO = operando1 * operando2;
    return true;
    }
    else if ( operatore.compareTo("/") == 0)
    { if (operando2 != 0)
    { RISULTATO = operando1 / operando2;
    return true;
    }
    else
    { return false;
    }
    }
    else
    { return false;
    }
    }

    void STAMPACALCOLA() {
    System.out.println("Ecco il risultato: " + RISULTATO);
    }

    public static void main (String args[]) {
    CALCOLA RESULT;
    boolean OPERATOREVALIDO;
    RESULT = new CALCOLA(); //istanziamento oggetto RESULT
    System.out.println("PRIMO:");
    RESULT.PRENDIADDENDO(operando1); // INSERISCI PRIMO OPERANDO, richiama metodo PRENDIADDENDO1
    System.out.println("SECONDO:");
    RESULT.PRENDIADDENDO(operando2); // INSERISCI SECONDO OPERANDO, richiama metodo PRENDIADDENDO2
    System.out.println("OPERAZIONE:");
    RESULT.PRENDISEGNO (); // INSERISCI SEGNO
    OPERATOREVALIDO = RESULT.SVOLGICALCOLO();
    if ( OPERATOREVALIDO == true)
    { RESULT.STAMPACALCOLA();
    }
    else
    { System.out.println("sbagliato non hai messo operando giusto");
    }
    }
    }


    alla compilazione nessun errore, se poi lancio il programma, mi torna sempre 0.0 come risultato qualsiasi cifra inserisco.. dove ho sbagliato????
    Grazie dell'aiuto che saprete darmi,
    Ciao,Antonio

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

    Re: problemi su codice

    Originariamente inviato da sandrokan7
    alla compilazione nessun errore, se poi lancio il programma, mi torna sempre 0.0 come risultato qualsiasi cifra inserisco.. dove ho sbagliato????
    Faccio solo una piccola premessa: il tuo codice come stile di scrittura è orrendo ... non ti offendere eh. Non sono state minimamente rispettare le convenzioni di denominazione di classi, metodi ecc...

    Veniamo al problema: hai fatto un metodo PRENDIADDENDO che ha un parametro double operando. Assegnare qualcosa a questa variabile 'operando' NON va assolutamente a toccare il valore della variabile 'operando1'. Nel metodo, 'operando' è una variabile locale, una copia di 'operando1'.
    Quindi rivedi bene tutta la gestione di queste variabili.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3

    grazie..

    Grazie per la risposta,
    sono alle prime armi e devo un attimo farmi l'occhio..
    Specialmente le variabili mi stanno facendo un po' diventar matto, anche in questo codice
    ho provato a dichiarare operando1 e operando2 dopo il main, ma mi butta fuori un po' di errori..
    Se dichiaro 2 metodi senza passare nulla, tutto ok.. se provo a generalizzare la funzione ricevo un po' di insulti..
    grazie dell'aiuto che mi hai dato,
    ciao,anto

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.