la prossima volta usa i tag code per scrivere il codice se no cosi nn si capisce bene:
codice:
import java.io.*;
public class Rain {
public static void main(String[] args) {
char par;
int k;
System.out.println("Scrivi un numero:");
InputStreamReader reader = new InputStreamReader(System.in);
BufferedReader myInput = new BufferedReader(reader);
String str = new String();
try {
str = myInput.readLine();
} catch (IOException e) {
System.out.println("Si è verificato un errore: " + e);
System.exit(-1);
}
k = Integer.parseInt(str);
System.out.println("Scrivi \"ciao\"");
BufferedReader myInput2 = new BufferedReader(reader);
String str2 = new String();
try {
str2 = myInput2.readLine();
} catch (IOException e) {
System.out.println("Si è verificato un errore: " + e);
System.exit(-1);
}
if (("ciao").equals(str2)) {
System.out.println(str2);
} else {
System.out.println("Non hai scritto ciao");
}
}
}
questo e il codice corretto. l'if non funzionava per il semplcie fatto che hai una stringa non puoi scrivere == ad un'altra stringa questo == tra 2 stringe controlla se la locazione di memoria delle 2 variabile è uguale quindi restituisce sempre false
per fare uguaglienza tra 2 stringe devi usare il metodo equals delle stringhe
in questo caso:
("ciao").equals(str2) questo fa il confronto lettera per lettera delle stringe. ricorda se scrivi Ciao grnade ti restituisce sempre false perche e case sensetivi cioè riconosce il maiuscolo e il minuscolo ... se vuoi che nn sia case sensitive basta che scrivi cosi
("ciao").equals(str2.toLowerCase())