Oppure

Loading
05/10/19 18:07
Lucym80
Salve a tutti,
avrei una domanda.
Mi sto adesso avvicinando al mondo Java e devo fare un esercizio. Devo creare un file per una calcolatrice, ma non cose complesse, devo far in modo che la calcolatrice esegue soltanto le prime 4 funzioni principali con numeri naturali, poi le cose più complesse verranno inserite man mano che andrò avanti con le lezioni.
Potete darmi qualche dritta, ho fatto vari tentativi e credo che manchi qualcosa.
Questo è il codice dell'ultimo tentativo; dovrebbe fare la somma, ma non va.
public class Calcolatrice {
public static void main(String[] args) {
         int a = Integer.parseInt(args[0]);
         int b = Integer.parseInt(args[1]);
int c=0;
while (b > 0) {
c= a+b;
            b = b-1; }
System.out.println("Il risultato del prodotto è +c";);
}
}
Vi ringrazio anticipatamente!
aaa
05/10/19 18:57
Mikelius
Che errore ti da?

"Non va" è troppo generico.

PS usa i tag CODE
aaa
05/10/19 23:10
Lucym80
Salve, non
ricordo l'errore, poiché ho fatto molti tentativi. Quest'ultimo dovrebbe andare meglio, perché non mi dà errore, visto che si apre anche la finestra che chiede di inserire un numero, ma quando scrivo ad esempio 2+4 mi dà l'errore della class scanner.
il codice è questo:
import java.util.Scanner;
public class Calcolatrice {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.printf(" Inserisci un numero ";);
int num1 =sc.nextInt();
System.out.printf("Digita un altro numero. ";);
int num2= sc.nextInt();
System.out.println(    "Digita l'operazione da fare:\n1) somma;\n2) sottrazione;\n3) moltiplicazione;\n4) divisione.";);
int scelta = sc.nextInt();
switch(scelta) {
case 1: {
    System.out.println("Hai scelto la somma.";);
    int result = num1+num2;
System.out.printf("La somma tra %.2f e %.2f vale %.2f.\n", num1,num2,result);
break;
}    
case 2: {
    System.out.println("Hai scelto la sottrazione.";);
int result = num1-num2;
System.out.printf("La differenza tra %.f e%.2f vale %.2f.\n", num1,num2,result);
break;
}
case 3: {
System.out.println("Hai scelto la moltiplicazione.";);
int result = num1*num2;
System.out.printf("La moltiplicazione tra %.2f e %.2f vale%.2f\n", num1,num2,result);
break;
}
case 4: {
    System.out.println("Hai scelto la divisione.";);
    int result = num1/num2;
    System.out.printf("La divisione tra %2f e %2f vale %2f.\n", num1,num2,result);
    break;
}
default: {
System.out.println("Scelta non riconosciuta.";);
            break;
}
}
}
}
Ancora grazie!
aaa
05/10/19 23:53
Carlo
Quando scrivi il codice a sinistra della finestra c'è una casellina con scritto code, inserisci il codice tra code e /code
import java.util.Scanner;
public class Calcolatrice {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.printf(" Inserisci un numero ");
int num1 =sc.nextInt();
System.out.printf("Digita un altro numero. ");
int num2= sc.nextInt();
System.out.println(    "Digita l'operazione da fare:\n1) somma;\n2) sottrazione;\n3) moltiplicazione;\n4) divisione.");
int scelta = sc.nextInt();
switch(scelta) {
case 1: {
    System.out.println("Hai scelto la somma.");
    int result = num1+num2;
System.out.printf("La somma tra %.2f e %.2f vale %.2f.\n", num1,num2,result);
break;
}    
case 2: {
    System.out.println("Hai scelto la sottrazione.");
int result = num1-num2;
System.out.printf("La differenza tra %.f e%.2f vale %.2f.\n", num1,num2,result);
break;
}
case 3: {
System.out.println("Hai scelto la moltiplicazione.");
int result = num1*num2;
System.out.printf("La moltiplicazione tra %.2f e %.2f vale%.2f\n", num1,num2,result);
break;
}
case 4: {
    System.out.println("Hai scelto la divisione.");
    int result = num1/num2;
    System.out.printf("La divisione tra %2f e %2f vale %2f.\n", num1,num2,result);
    break;
}
default: {
System.out.println("Scelta non riconosciuta.");
            break;
}
}
}
} 
Ultima modifica effettuata da Carlo 06/10/19 0:04
in programmazione tutto è permesso
06/10/19 5:50
nessuno
Non devi inserire 2+4

Leggi il codice che hai copiato e vedi cosa ti chiede

Un numero
Un altro numero
Un valore numerico per indicare l'operazione
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità;) chiamava il gioco del Lotto Tassa sulla stupidità.
06/10/19 8:30
Mikelius
1) Stai studiando java per conto tuo o in ambito scolastico/Universitario?
te lo chiedo perchè, se lo stai studiando per conto tuo, forse sarebbe meglio se ti approcciassi direttamente alla programazione ad oggetti, se sei in ambito scolastico/universitario segui il percorso che ha deciso il tuo professore.

2) Attento nella divisione al tipo di dato che stai trattando.

3) Se vuoi inserire direttamente l'espressione (Senza i 3 input) guarda il metodo split che trovi nella classe String.
L'errore deriva dal fatto che scanner si aspetta un int ( nextInt() ) invece se passi 2+4 lui il "+" non sa gestirlo come int e da l' eccezione (impara anche i termini corretti, non si chiamano errori ;) ). Potresti usare nextString(), dividere l'input tramite il metodo split() e poi convertire i numeri in interi. Questo è solo un metodo possibile
Ultima modifica effettuata da Mikelius 06/10/19 8:36
aaa
06/10/19 10:12
Lucym80
Salve, prima di tutto grazie a tutti. Sto cercando di imparare Java tramite un corso privato; al momento ho fatto solo qualche ora di corso e come esercizio mi è stato dato proprio il fatto di arrivare alla soluzione di una calcolatrice che faccia solo le 4 funzioni principali e solo con numeri naturali. Allora vedendo che mi dava molte eccezioni, mi sono messa accercare su internet e avevo trovato questo.
In realtà dovrei farlo usando la pseudocodifica, ma non riesco, mi dà parecchie eccezioni, quindi grazie a voi già ho imparato qualcosa in più. Si accettano suggerimenti!
Grazie a tutti!
aaa
06/10/19 10:41
nessuno
Hai letto la mia risposta?

Comunque l'esercizio lo devi scrivere tu e non copiare da internet senza neanche capirlo.

Se continui ad avere difficoltà di base chiedi al tuo docente.
Ultima modifica effettuata da nessuno 06/10/19 10:44
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità;) chiamava il gioco del Lotto Tassa sulla stupidità.