If non funzionante

di il
7 risposte

If non funzionante

Buongiorno , sono uno studente. Ho scritto queste righe di codice ma durante l esecuzione l if(LIB.getAutore() == cerca) {
non mi restituisce alcun risultato. Ho effettuato test di verifica con dati di prova ..
grazie

import java.io.*;
import java.util.Scanner;
public class progLibro {

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

//costante
final int MAX_LIBRI=3;
Scanner tastiera=new Scanner(System.in) ;

//variabili
String autore;
String titolo ;
int pagine;
String cerca;
boolean flag = false;


//oggetti
Libro maxpagine;

//array di oggetti
Libro LIB[] = new Libro[MAX_LIBRI];

//crea i libri e legge i dati
for(int i=0;i<LIB.length;i++) {
System.out.println("Inserisci l' autore");
autore=tastiera.next();
System.out.println("Inserisci il titolo");
titolo=tastiera.next();
System.out.println("Inserisci il numero di pagine");
pagine=tastiera.nextInt();

LIB=new Libro(autore,titolo,pagine);

}

maxpagine=LIB[0];

//calcolo
for(int i=0;i<LIB.length;i++) {

if(LIB.getPagine()>maxpagine.getPagine()) {
maxpagine = LIB;
}

}
System.out.println("\nil libro con il maggior numero di pagine è dell autore "+ maxpagine.getAutore() + " ha il titolo " + maxpagine.getTitolo() + " ed ha " + maxpagine.getPagine()+ "pagine");

System.out.println("Inserisci l' autore da cercare");
cerca=tastiera.next();

for(int i=0;i<LIB.length;i++) {
if(LIB.getAutore() == cerca) {
System.out.println("il titolo dell autore e" + LIB.getTitolo());
flag =true;
}
}
if(flag==false) {
System.out.println("Autore non trovato");

}

System.out.println("Inserisci il titolo da cercare");
titolo=tastiera.next();

for(int i=0;i<LIB.length;i++) {

if(LIB.getTitolo()==titolo) {
System.out.println("\nil numero di pagine del titolo " + LIB.getTitolo() + " e " + LIB.getPagine());
}

}
}
}

7 Risposte

  • Re: If non funzionante

    Ciao,
    ti consiglio di formattare il codice con l'apposita funzione dell'editor
    altrimenti passa la voglia di leggerlo dopo due righe
    :bye:
  • Re: If non funzionante

    
    import java.io.*;
    import java.util.Scanner;
    public class progLibro {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		
    		//costante
    		final int MAX_LIBRI=3;
    	Scanner tastiera=new Scanner(System.in)	;
    		
    		//variabili
    		String  autore;
    		String titolo ;
    		int pagine;
    		String cerca;
    		boolean flag = false;
    		
    		
    		//oggetti
    		Libro maxpagine;
    			
    		//array di oggetti
    		Libro LIB[] = new Libro[MAX_LIBRI];
    		
    		//crea i libri  e legge i dati
    				for(int i=0;i<LIB.length;i++) {
    					System.out.println("Inserisci l' autore");
    					autore=tastiera.next();
    					System.out.println("Inserisci il titolo");
    					titolo=tastiera.next();
    					System.out.println("Inserisci il numero di pagine");
    					pagine=tastiera.nextInt();
    					
    					LIB[i]=new Libro(autore,titolo,pagine);
    					
    				}
    				
    				maxpagine=LIB[0];
    				
    				//calcolo 
    				for(int i=0;i<LIB.length;i++) {
    		
    					if(LIB[i].getPagine()>maxpagine.getPagine()) {
    						maxpagine = LIB[i];		
    					}
    			
    					}
    				System.out.println("\nil libro con il maggior numero di pagine è dell autore "+ maxpagine.getAutore() + " ha il titolo " + maxpagine.getTitolo() + " ed ha "  + maxpagine.getPagine()+ "pagine");
    		
    				System.out.println("Inserisci l' autore da cercare");
    				 cerca=tastiera.next();
    	 
    				    for(int i=0;i<LIB.length;i++) {	
    					if(LIB[i].getAutore() == cerca) {
    						System.out.println("il titolo dell autore e" + LIB[i].getTitolo());
    						flag =true;
    					}	
    					}
    				if(flag==false) {
    					System.out.println("Autore non trovato");
    
    				}
    				
    				System.out.println("Inserisci il titolo da cercare");
    				titolo=tastiera.next();
    				
    					for(int i=0;i<LIB.length;i++) {
    					
    					if(LIB[i].getTitolo()==titolo) {
    					System.out.println("\nil numero di pagine del titolo " + LIB[i].getTitolo() + " e " + LIB[i].getPagine());	
    					}
    			
    					}
    	}	
    }
    
  • Re: If non funzionante

    L'operatore "==" si usa praticamente SOLO con gli interi.

    NON SI USA MAI con gli oggetti (e String e' un oggetto)

    e NEMMENO con i floating point (A MENO di non sapere GIA' che il "=="" funziona)
  • Re: If non funzionante

    Quindi equals() ???
  • Re: If non funzionante

    SenseiMar ha scritto:


    Quindi equals() ???


    if (oggetto1.equals(oggetto2))
  • Re: If non funzionante

    Si, equals per gli oggetti;

    == confonta ' i puntatori' agli oggetti ;
    equals invece quello che a cui i puntatori puntano
  • Re: If non funzionante

    Risolto ... funziona grazie tutti
Devi accedere o registrarti per scrivere nel forum
7 risposte