Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Ricerca in un vettore

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    173

    Ricerca in un vettore

    Ciao ragazzi mi sto affacciando alla programmazione in Java con libri e manuali e mi stavo cimentando nei vettori, creando un vettore, dovrei fare inserimento dei numeri in questo e vettore e poi chiedere all'utente di inserire un numero che vuole cercare e poi fare la ricerca nel vettore e stampare il risultato.

    Il problema che non riesco a risolvere è che non mi fa inserire i numeri nel vettore con il ciclo for, sto sbagliando qualche sciocchezza ma non riesco a capire cosa.

    Posto il codice:

    import java.util.Scanner;
    public class ricercaVettore {

    /**
    * @param args
    */
    public static void main(String[] args) {
    // TODO Auto-generated method stub

    int vettore [];
    vettore = new int[11];
    int i;


    Scanner in = new Scanner(System.in);

    for (i=0; i<=9; i++){
    System.out.println("Inserisci il numero:");
    vettore[i]=in.nextInt();

    }
    System.out.println("Inserisci il numero da trovare:");
    int x;
    x = in.nextInt();



    for (i=0; i<vettore.length; i++) {
    if ( vettore [i] == x) {
    System.out.println ("Il numero è stato trovato");


    }
    else{
    System.out.println ("Il numero non è stato trovato");
    break;
    }

    }


    }

    }

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: Ricerca in un vettore

    Il vettore è di 11 elementi, perché nel for ti fermi a 9 (quindi al decimo elemento)?
    Comunque il problema è il break nel ramo else
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    76
    Ciao, il tuo ciclo for per riempire il vettore in realtà funziona benissimo. Ciò che sbagli è il test per verificare se il numero che vuoi trovare si trova nel vettore. Nel tuo codice, cosi come è scritto, per i=0 si verifica se il numero x è uguale a vettore[0]; se si il numero è stato trovato, altrimenti si interrompe il ciclo! in altre parole tu stai soltanto verificando se il tuo numero x sia uguale al primo elemento del vettore, l'errore è dunque che non scorri tutto il vettore ma ti fermi al primo elemento. Potresti correggere in questo modo:

    for (i=0; i<vettore.length; i++) {
    if ( vettore [i] == x) {
    System.out.println ("Il numero è stato trovato");
    return;
    }
    }
    System.out.println ("Il numero non è stato trovato");

  4. #4
    il problema come già ti hanno segnalato è quel break che hai inserito nel ramo else. Il fatto è perché hai voluto mettere un break? fai attenzione è un comando che dovrebbe (a mio avviso) sparire da qualunque listato perché porta ad uno stile di programmazione non strutturato proprio degli anni 70 e che oramai ha evidenziato tutte le sue pecche.

    Matteo
    Powered by MacOSX Lion

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 © 2024 vBulletin Solutions, Inc. All rights reserved.