Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    12

    Stampa array divisibile

    Ciao a tutti.
    Vorrei realizzare la stampa di un array con tutti gli elementi divisibili per 3, di seguito posto la mia idea iniziale.
    codice:
    public class DivisibilePerTre{    
        public static void main(String argv[]){
            
            int[] Div = {34, 65, 23, 33, 9, 12, 24, 48, 43, 11, 22, 99, 27};
            int divisibile = 0;
            int i;
            
            for(i = 0; i< Div.length; i++){
                if(Div[i]%3==0){
                System.out.println("Questi elementi sono divisibile per tre: " +Div[i]);
                }
            }
        }
    }
    Però in realtà vorrei stampare a video il testo una sola volta e di seguito le componenti dell'array divisibili, quindi ho tentato di proseguire per questa strada:
    codice:
    public class DivisibilePerTre{    
        public static void main(String argv[]){
            
            int[] Div = {34, 65, 23, 33, 9, 12, 24, 48, 43, 11, 22, 99, 27};
            int divisibile = 0;
            int i;
            
            for(i = 0; i< Div.length; i++){
                if(Div[i]%3==0){
                    divisibile = Div[i];
                }
            }
            System.out.println("Questi elementi sono divisibile per tre: " +divisibile);
        }
    }
    (premetto che mi sono basato sul metodo per calcolare il componente minimo e quello massimo) ma in questo modo viene stampato solo l'ultimo componente dell'array, qualcuno potrebbe gentilmente spiegarmi dove continuo a sbagliare? Grazie infinite!
    Ultima modifica di Dryblow; 30-05-2014 a 10:23

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755
    Potresti mettere il
    codice:
    System.out.println("Questi elementi sono divisibile per tre:");
    fuori e prima del for, così viene stampato una sola volta all'inizio
    Poi dentro il for e dentro l'if per controllare che il resto della divisione per 3 sia 0 ci metti la stampa dell'elemento corrente
    codice:
    System.out.println(Div [i]);
    Puoi anche non utilizzare la variabile "divisibile" inquanto non devi tenere traccia dell'elemento, tramite l'indice del for risali all'elemento corrente e lo stampi.


  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Hai anche altre due strade volendo:

    1) crei un nuovo array in cui man mano che li trovi inserisci i numeri divisibili per 3 e alla fine lo stamp
    2) usi una stringa in cui concateni i suddetti numeri e alla fine la stampi
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Dryblow Visualizza il messaggio
    codice:
                System.out.println("Questi elementi sono divisibile per tre: " +Div[i]);
    Però in realtà vorrei stampare a video il testo una sola volta e di seguito le componenti dell'array divisibili
    Allora semplicemente spezza questa println in 2 print. Il print del numero divisibile lo fai sempre. Il print del testo lo fai una volta sola grazie ad un banale flag (boolean) che tieni. All'inizio sarà true. Se true stampi il testo e lo metti a false.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    3
    codice:
    public class DivisibilePerTre{    
        public static void main(String argv[]){
            
            int[] Div = {34, 65, 23, 33, 9, 12, 24, 48, 43, 11, 22, 99, 27};
            int divisibile = 0;
            int i;
            System.out.print("Questi elementi sono divisibile per tre: ");
            for(i = 0; i< Div.length; i++){
                if(Div[i]%3==0){
                    System.out.print(Div[i]+" ");
                }
            }
        }
    }
    Bastava semplicemente mettere l'istruzione di stampa prima del for.
    Nel modo in cui l'ho scritto, stampa tutto su una riga, poi se alla fine vuoi andare a capo basta aggiungere un System.out.println("");

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.