Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    10

    [JAVA] Istruzione condizionale if-else

    Devo scrivere una applicazione che, inseriti da tastiera i tre lati di un triangolo, mi restituisca il tipo di triangolo(scaleno-equilatero-isoscele), inoltre se i tre lati non possono formare un triangolo deve comparire un messaggio apposito;

    Sapendo che tre numeri rappresentano i lati di un triangolo se e soltatno se sono tutti positivi e se ciascuno è minore della somma degli altri due, ho scritto questo:

    codice:
     import fiji.io.*;
    
     class Triangolo{
    	 public static void main(String[] args){
    		 int a,b,c;
    
    		 System.out.println("inserisci il lato A: ");
    		 a=Lettore.in.leggiInt();
    
    		 System.out.println("Inserisci il lato B: ");
    		 b=Lettore.in.leggiInt();
    
    		 System.out.println("Inserisci il lato C:");
    		 c=Lettore.in.leggiInt();
    
    		 if(a!=b && a!=c && b!=c)
    		 System.out.println("Il triangolo è SCALENO");
    		 else if(a==b && a==c && b==c)
    		 System.out.println("Il triangolo è EQUILATERO");
    		 else if(a==b || a==c || b==c)
    		 System.out.println("Il triangolo è ISOSCELE");
    		 else if(a>b+c && b>a+c && c>a+b)
    		 System.out.println("Non è un triangolo");
    	}
    }
    L'applicazione restituisce correttamente il tipo di triangolo mostrato, però non funziona correttamente nel caso in cui le tre lunghezze non siano i tre lati di un triangolo, ho provato ad inserire
    a=10
    b=14
    c=1000
    e il messaggio dice che il triangolo è scaleno;

    Credo che l'errore sia in questo frammento di codice

    else if(a>b+c && b>a+c && c>a+b)

    ma non riesco a capire cosa c'è di sbagliato...


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

    Re: [JAVA] Istruzione condizionale if-else

    Originariamente inviato da merloMT
    else if(a>b+c && b>a+c && c>a+b)
    Guarda, la regola, se non sbaglio, dovrebbe essere: "in un triangolo ogni lato deve essere minore della somma degli altri due lati". Se così non fosse, il triangolo non si "chiude" ... è intuitivo.

    Praticamente il contrario di quanto hai testato tu.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    10
    Capito!!!

    Avevo usato AND invece di OR!!!

    Grazie per la dritta!!!


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.