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

    Programma con ciclo For

    Salve a tutti ragazzi, sono nuovo nel forum

    Sto studiando Java e provengo da VisualBasic così ho alcuni problemini :P

    Vi scrivo l'intestazione del programma che volevo creare con codice scritto da me, ovviamente non funzionante

    Scrivere un programma che riceva una serie di numeri in input terminando una volta ricevuto lo 0 od un numero negativo.
    Il programma deve ritornare
    - il numero dei numeri ricevuti
    - la loro somma (Se si termina con un numero negativo quest' ultimo non va conteggiato)
    - il massimo tra essi

    Mio Codice
    codice:
    import java.util.Scanner;
    	public class ProvaFor {
    		public static void main (String [] args);
    			Scanner tast=new Scanner(System.in);
    			int count, sum, z = 0;
    			int x = tastiera.nextInt();
    				for (x=0; x<0; count ++) {
    				sum=sum+x;
    					if(x>z){
    					z=x;	
    				}
    			}
    		System.out.println("nCount vale:" + count);
    		System.out.println("La loro somma è" + sum);
    		System.out.println("Il massimo è" + z);
    	}
    Accetto tutti i consigli possibili dato che non sono un'esperto di linguaggio

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

    Re: Programma con ciclo For

    Originariamente inviato da qwertyz
    codice:
    import java.util.Scanner;
    	public class ProvaFor {
    		public static void main (String [] args);
    			Scanner tast=new Scanner(System.in);
    			int count, sum, z = 0;
    			int x = tastiera.nextInt();
    				for (x=0; x<0; count ++) {
    				sum=sum+x;
    					if(x>z){
    					z=x;	
    				}
    			}
    		System.out.println("nCount vale:" + count);
    		System.out.println("La loro somma è" + sum);
    		System.out.println("Il massimo è" + z);
    	}
    Il codice è parecchio sbagliato. Dal fatto che mancano le { } del main (al loro posto hai messo un ; ) all'aver dichiarato 'tast' e poi aver usato 'tastiera', al 'sum' e 'count' che non sono inizializzati (quindi sum non può essere usato la prima volta in quella somma), all'errore concettuale che invochi nextInt solo 1 volta e basta prima del ciclo (ciclo che comunque non è appropriato).

    Un "input" te lo fornisco io: il seguente pezzetto

    codice:
    int num;
    
    while ((num = tastiera.nextInt()) > 0) {
        // ..... altro
    }
    Il while continua a ciclare se inserisci un numero > 0. Il while termina (e si esce dal ciclo) quando inserisci un numero <= 0. Il resto ... completalo tu.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Grazie mille per la risposta...

    Devo evitare di mischiare linguaggi, provo subito...

    Edit:

    Sorry

    codice:
    import java.util.Scanner;
    	public class ProvaFor {
    		public static void main(String[] args){
    			Scanner tastiera=new Scanner(System.in);
    			int count = 0; 
    			int sum = 0; 
    			int z = 0;
    			int x;
    			
    			while (( x = tastiera.nextInt()) > 0) {
    				sum = sum + x;
    				
    				if(x > z){
    				z=x;	
    				}
    			}
    		System.out.println("nCount vale:" + count);
    		System.out.println("La loro somma è" + sum);
    		System.out.println("Il massimo è" + z);
    	}
    }
    Mi dici dove sbaglio? Uffa

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da qwertyz
    Mi dici dove sbaglio? Uffa
    La somma (sum) e il massimo (z) sono corretti. Il conteggio (count) non lo incrementi.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Giusto, mi correggo:

    codice:
    import java.util.Scanner;
    	public class ProvaFor {
    		public static void main(String[] args){
    			Scanner tastiera=new Scanner(System.in);
    			int count = 0; 
    			int sum = 0; 
    			int z = 0;
    			int x;
    			
    			while (( x = tastiera.nextInt()) > 0) {
    				sum = sum + x;
    				
    				if(x > z){
    				z=x;	
    				}
    			count++;
    			}
    		System.out.println("nCount vale:" + count);
    		System.out.println("La loro somma è" + sum);
    		System.out.println("Il massimo è" + z);
    	}
    }
    Il programma viene correttemente compilato... Tuttavia alla sua esecuzione mi esce la seguente schermata:



    EDIT
    Ho settato la ClassPath, programma funzionante!
    Grazie per gli aiuti andbin

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.