janej = JOptionPane.showInputDialog(null, "Hvad så? Skal vi tage i byen?");
if (janej == "Ja") JOptionPane.showMessageDialog(null, "Helt sikkert");
else if (janej == "Nej") JOptionPane.showMessageDialog(null, "Helt sikkert");
else JOptionPane.showMessageDialog(null, "Ja, det var jo ikke så flot!\n" + "Du skulle skrive Ja eller Nej");
System.exit( 0 ); } }
Det skal være meningen at når man skriver Ja eller Nej så skal man få den besked der står. Men lige meget hvad springer programmet direkte til else-sætningen og springer nærmest if og if else sætningerne over. Hvorfor?
En string er et objekt der indeholder et antal bogstaver så når du siger streng1 == streng2 er det to pegepinde du sammenligner, ikke 2 bogstavsekvenser
// Hvis der bruges new String, giver kun equals true System.out.println ("\ninstanceVar1 equals NewVar: " + instanceVar1.equals(instanceNewVar)); System.out.println ("instanceVar1 == NewVar: " + (instanceVar1 == instanceNewVar)); }
public static void main(String[] args) { new StringEquals("sammenlign"); } }
Derfor brug aldrig new String med en streng som parameter. Det bruger bare mere ram og performer langsommere.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.