[Java me] Dziwne zachowanie komend

0

Witam :)
Mam listę

Command cBack = new Command ("Powrót", Command.BACK, 1);
Command cDelete = new Command("Usuń", Command.ITEM, 2);

List Marks = new List(null, Choice.IMPLICIT);

Marks.addCommand(cBack);
Marks.addCommand(cDelete);
Marks.setCommandListener(this);

Chce obsłużyć komendy:

		System.out.println("Label" + c.getLabel());
		if(c == cDelete)
		{
			System.out.println("Deleting");
		}
		else if(c == cBack &&);
		{
			System.out.println("back");
		}

Program zachowuje sie niedorzecznie, tzn gdy klikam na przycisk oznaczony cDelete to czytam w konsoli

LabelUsuń
Deleting
back

Gdy kliknę na Back to
LabelPowrót
back

Skąd w pierwszym przypadku sie bierze back ? ! Jak to jest możliwe ? Prosze o jakiekolwiek racjonalne wytłumaczenie ;)

0

[Edit]
Oczywiście nie ma tych '&&' w kodzie, drobna literówka ;)
Problem pozostaje.

0

niepotrzebny srednik po warunku else if powoduje ze gdy warunek jest spelniony wykonuje się instrukcja pusta a back wypisze sie zawsze niezaleznie od warunku

usun srednik i problem zniknie

0

A wszystko przez jeden średnik.

Usuń średnik z linii "else if(c == cBack);"

Kod

  System.out.println("Label" + c.getLabel());
                if(c == cDelete)
                {
                        System.out.println("Deleting");
                }
                else if(c == cBack); // srednik!!!!!!!!!!
                {
                        System.out.println("back");
                }

jest równoważny

  System.out.println("Label" + c.getLabel());
                if(c == cDelete)
                {
                        System.out.println("Deleting");
                }
                else if(c == cBack)
                {
                }

                System.out.println("back");
                

1 użytkowników online, w tym zalogowanych: 0, gości: 1