Java:
class Rechner
{
public static void main(String[] args)
{
double operand_01 = 0.0;
double operand_02 = 0.0;
double result = 0.0;
if ( args.length == 1 )
{
System.out.println("Aufruf mit drei Parametern: zahl1 zahl2 operand");
System.out.println("Beispiel (Multiplikation): java Rechner 25 3 x");
System.exit(0);
}
else if ( args.length != 3 )
{
System.out.println("FEHLER: Zuwenige oder zuviele Parameter!");
System.out.println("Rufen Sie das Programm mit genau drei Parametern auf: erste_Zahl zweite_Zahl Operator.");
System.out.println("\nMultiplikationszeichen: x\nDivisionszeichen: /\nModulo: %" );
System.exit(0);
}
else
{
[…]
Das obige funktioniert; aber zu meiner Verwunderung nicht das Folgende. Dort wird die erste If-Klause nie betreten.
Code:
class Rechner
{
public static void main(String[] args)
{
double operand_01 = 0.0;
double operand_02 = 0.0;
double result = 0.0;
String firstParam = args[0];
if ( args[0] == "help" || args[0] == "h" || args[0] == "?" )
{
System.out.println("Aufruf mit drei Parametern: zahl1 zahl2 operand");
System.out.println("Beispiel (Multiplikation): java Rechner 25 3 x");
System.exit(0);
}
else if ( args.length != 3 )
{
System.out.println("FEHLER: Zuwenige oder zuviele Parameter!");
System.out.println("Rufen Sie das Programm mit genau drei Parametern auf: erste_Zahl zweite_Zahl Operator.");
System.out.println("\nMultiplikationszeichen: x\nDivisionszeichen: /\nModulo: %" );
System.exit(0);
}
else
{
[…]
Wieso wird bei einem Aufruf wie "java Rechner help" nicht die erste Bedingung erfüllt? Wieso wird die erste If-Klause nie betreten?