|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Jan 2015
Messaggi: 6
|
[java]calcolatrice
Salve a tutti sono alle rpime armi con java e sono incappata in questo problema
scrivi un programma che calcoli la somma e la differenza di n numeri inseriti da terminale; i numeri e gli operatori sono separati tra di loro da uno o più spazi. es: 1 + 3 - 4 + 12 + 2 - 10 - 1 e va stampato:3 Codice:
import java.util.StringTokenizer;
import java.util.Scanner;
class Calcolatore{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
String numeri=sc.nextLine();
StringTokenizer st = new StringTokenizer(numeri," ");
int somma=0;
while(st.hasMoreTokens()){
String f=st.nextToken();
if(f.equals("+")){
int n=Integer.parseInt(f);
somma=somma+n;
}else if(f.equals("-")){
int n=Integer.parseInt(f);
somma=somma-n;
}
}
System.out.println(somma);
}
}
grazie a tutti per la risposta |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2787
|
Negli if controlli se f vale "+" o "-" e poi tenti di convertire quel valore ("+" o "-") in intero... Semplicemente non ha senso!
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jun 2014
Messaggi: 3753
|
Stai cercando di convertire '+' in un intero, cosa che ovviamente ti da errore. Quell'operazione va eseguita sul carattere successivo all'operatore, ammesso che sia un numero (se faccio 1+a non funziona, per esempio)
|
|
|
|
|
|
#4 |
|
Junior Member
Iscritto dal: Jan 2015
Messaggi: 6
|
ciao grazie a tutti per le risposte
Codice:
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
String numeri=sc.nextLine();
StringTokenizer st = new StringTokenizer(numeri," ");
String f=st.nextToken();
int a=Integer.parseInt(f);
int somma=0;
while(st.hasMoreTokens()){
a=Integer.parseInt(f);
int prec=a;
f=st.nextToken();
if(f.equals("+")){
f=st.nextToken();
a=Integer.parseInt(f);
a=prec+a;
}else
f=st.nextToken();
a=Integer.parseInt(f);
a=prec-a;
}
System.out.println(a);
}
}
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jun 2014
Messaggi: 3753
|
Perchè fai 2 st.nextToken() , uno fuori dal ciclo while e l'altro dentro, quindi alla prima esecuzione sei già sul secondo token anzichè sul primo
|
|
|
|
|
|
#6 |
|
Junior Member
Iscritto dal: Jan 2015
Messaggi: 6
|
Grazie sei un angeloooooooooo!
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jun 2014
Messaggi: 3753
|
ottimo
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:27.



















