eccomi qua, questa volta sono le stringhe a darmi problemi..
ho scritto un programma che dati 3 nomi e relative età, dovrebbe dire chi è il più vecchio e chi il più giovane.
se non inizializzo le stringhe "nome1", "nome2"e "nome3", mi dà errore e dice che devo inizializzarle.
ma se le inizializzo (o meglio se lascio a netbeans di inizializarmele in automatico come correzione)
(nome1 = null, nome2 =null, nome3 = null)
i risultati saranno che il più vecchio è "null" e il più giovane anche!
devo inizializzare in maniera diversa o ho fatto qualche errore più grande??
codice:
/* * To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package vecchiogiovane;
import java.io.*;
/**
*
* @author filipporezzadore
*/
public class Vecchiogiovane {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws Exception{
BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); // TODO code application logic here
String nome1 = null;
int eta1;
String nome2 = null;
int eta2;
String nome3 = null;
int eta3;
String oldest;
String youngest;
int etamax = 0;
int etamin = 0;
System.out.println("ins first name:");
String line = input.readLine();
System.out.println("ins first age:");
line = input.readLine();
eta1 = Integer.parseInt(line);
System.out.println("ins second name:");
line = input.readLine();
System.out.println("ins second age:");
line = input.readLine();
eta2 = Integer.parseInt(line);
System.out.println("ins third name:");
line = input.readLine();
System.out.println("ins third age:");
line = input.readLine();
eta3 = Integer.parseInt(line);
if (eta1 > eta2)
eta1 = etamax;
if (eta3 > etamax)
eta3 = etamax;
if (eta1 < eta2)
eta1 = etamin;
if (eta3 < etamin)
eta3 = etamin;
if (etamax == eta1)
oldest = nome1;
else if (etamax == eta2)
oldest = nome2;
else
oldest = nome3;
if (etamin == eta1)
youngest = nome1;
else if (etamin == eta2)
youngest = nome2;
else
youngest = nome3;
System.out.println("oldest is:" + oldest);
System.out.println("youngest is:" + youngest);
}
}
esecuzione:
codice:
run:
ins first name:
aldo
ins first age:
35
ins second name:
mino
ins second age:
67
ins third name:
carlo
ins third age:
32
oldest is:null
youngest is:null
BUILD SUCCESSFUL (total time: 25 seconds)
grazie mille ancora!!