if
oświadczenie ma postać:
if (condition) statement
pan obecnie dostał dwa nawiasach warunki ... co też skończyć przypisywanie wartości, co prawdopodobnie nie jest tym, czego potrzebujesz.
Więc najpierw naprawić aby zmusić go do kompilacji:
if ((First_Relation = true) & (Second_Relation = true))
Następnie zmień przypisania do kontroli równości, ponieważ w przeciwnym razie będzie to po prostu przypisać true
do obu zmiennych i stan minie, niezależnie od ich wcześniejszych wartości:
if ((First_Relation == true) & (Second_Relation == true))
Następnie wyjąć porównań ze stałych logicznych:
if ((First_Relation) & (Second_Relation))
następnie usunąć niepotrzebne nawiasy:
if (First_Relation & Second_Relation)
następnie dokonać zmienne podążać Java konwencje nazewnictwa:
if (firstRelation & secondRelation)
Następnie użyj bardziej konwencjonalny &&
zamiast &
- &&
zwarcie i jest prawie zawsze co chcesz:
if (firstRelation && secondRelation)
Teraz masz jeszcze półkolumny reż ectly after your if
warunek, który czyni go bezcelowym - będzie zawsze wykonać instrukcję System.out.println
, ponieważ nie jest to częścią instrukcji if
. Ci mógłby prostu usunąć średnik, ale chciałbym dodać szelki dla jasności:
if (firstRelation && secondRelation) {
System.out.println("insert text here");
}
Następny pamiętać, że jesteś tylko faktycznie inicjalizacji zmiennych, jeśli warunek jest prawdą - tak będziesz aktualnie uzyskać błąd podczas kompilacji, aby spróbować odczytać zmienne, które nie są definitywnie przypisane.
pierwsze, ustalić ostateczną Zadanie:
// Names changed to follow conventions
boolean firstRelation = p > q;
boolean secondRelation = r < s;
... a kod powyżej powinny być w porządku.
Następnie, miejsce, które naprawdę zyskujesz bardzo niewiele dzięki tym dodatkowym zmiennym.Inline warunki zamiast:
if (p > q && r < s) {
System.out.println("Given the values for p,q,r, and s the expression "
+ "(p > q) && !(r < s) evaluates to ";
}
W tym momencie staje się jasne, że istnieje bug dalej - ponieważ przekaz mówi o !(r < s)
ale warunek jest tylko r < s
. Musisz więc zdecydować, co chcesz osiągnąć i sprawić, by kod i wiadomość odzwierciedlały to samo. Pamiętaj, że nie kończysz też wiadomości. Rzeczywiście, można uprościć całość, aby:
System.out.println("Given the values for p,q,r, and s the expression "
+ "(p > q) && !(r < s) evaluates to " + ((p > q) && !(r < s));
... lub cokolwiek chcesz, aby wyrażenie faktycznie było.
'First_Relation = TRUE powinno być' First_Relation == TRUE w 'if' – Ashok
Dlaczego ludzie głosując na pytanie w dół? Stanowi to tak jasno, jak pytający jest w stanie, i demonstruje wysiłek. Nie każde pytanie musi dotyczyć zaawansowanych tematów lub docelowych zaawansowanych programistów. – shovavnik
Masz na myśli trzecią instrukcję if? – Raedwald