Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    5

    perche non legge la stringa???

    Non esegue questa operazione -> String operazione = tastiera.nextLine();
    Perchè???


    ------------

    import static java.lang.System.*;
    import static java.lang.Math.*;
    import java.util.Scanner;

    /** Sviluppare un'applicazione java che:
    - legge 3 numeri interi da tastiera - chiede all'utente quale operazione vuole eseguire su tali numeri - effettua l'operazione scelta dall'utente e visualizza a video il nome dell'operazione effettuata, il valore dei 3 argomenti ed il risultato. Poi termina l'esecuzione (il menu operazioni non e' ciclico). Le operazioni tra cui scegliere sono: la somma, la sottrazione, la moltiplicazione, la media (con virgola). */


    public class operazioni_1 {

    public static void main(String[] args) {
    Scanner tastiera = new Scanner(in); // tastiera
    java.text.DecimalFormat df = new java.text.DecimalFormat("0.000");//tronca dopo la virgola a 3 decimali


    System.out.print("Inserisci il primo numero a: ");
    int a = tastiera.nextInt();
    System.out.print("Inserisci il secondo numero b: ");
    int b = tastiera.nextInt();
    System.out.print("Inserisci il terzo numero c: ");
    int c = tastiera.nextInt();
    System.out.print("Quale operazione desideri fare? +,-,*,/ ");
    String operazione = tastiera.nextLine();

    if (operazione.equals("+"))
    System.out.println("Sommo tra loro " + a + ", " + b +", " + c + " : Risultato = " + a+b+c );
    if (operazione.equals("-"))
    System.out.println("Sottraggo tra loro " + a + ", " + b +", " + c + " : Risultato = " + (a-b-c));
    if (operazione.equals("*"))
    System.out.println("Moltiplico tra loro " + a + ", " + b +", " + c + " : Risultato = " + (a*b*c));
    if (operazione.equals("/"))
    System.out.println("Divido tra loro " + a + ", " + b +", " + c + " : Risultato = " + df.format(((double)(a))/((double)(b))/((double)(c))) );

    }
    }

  2. #2
    Due errori:

    1) String operazione = tastiera.next(); (e non nextLine())
    2) Nella somma alla fine devi scrivere + (a+b+c) e non a+b+c altrimenti esegue una concatenazione di stringhe.
    Al mio segnale... scatenate l'inferno!

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    5
    per quanto riguarda il nexLline sostituito con next ok vunziona
    ma il motivo???

    per quanto riguarda a+b+c fa la somma.. non fa la concatenazione

  4. #4
    Originariamente inviato da piz123
    per quanto riguarda il nexLline sostituito con next ok vunziona
    ma il motivo???
    Dalla documentazione ufficiale:


    nextLine

    Advances this scanner past the current line and returns the input that was skipped. This method returns the rest of the current line, excluding any line separator at the end. The position is set to the beginning of the next line.
    Since this method continues to search through the input looking for a line separator, it may buffer all of the input searching for the line to skip if no line separators are present.


    per quanto riguarda a+b+c fa la somma.. non fa la concatenazione
    Farebbe la somma se precedentemente non ci fosse una stringa. In questa istruzione

    Codice PHP:
    System.out.println("Sommo tra loro " ", " +", " " : Risultato = " a+b+
    "sommi" una stringa ad a ottenendo quindi una stringa che vai a "sommare" a b e così via. Dunque concateni i numeri, non li sommi tra loro.
    Al mio segnale... scatenate l'inferno!

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.