inkrementacja w boolean

0

Hej, o ile w pierwszym przykładzie wszystko jest jasne to w drugim nie rozumiem czemu po inkrementacji zmienna isTrue nadal ma wartość true.
Poproszę o nakierowanie.

import java.util.*;

public class testowa
{
    public static void main(String[] args)
    {
        
            int isTrue = 15;
            if (isTrue==15)
            {
            System.out.println("prawda, wiec wyswietlam");
             }
            ++isTrue;
            if (isTrue==15)
            {
            System.out.println("już nie prawda, bo t=16");
            }

    }
}
import java.util.*;

public class testowa
{
    public static void main(String[] args)
    {

            int t = 15;
            boolean isTrue = (t==15);
            if (isTrue)
            {
            System.out.println("prawda, wiec wyswietlam");
             }
            ++t;//zwiększam t o 1 więc isTrue w kolejnym if powinno przyjąć wartość false
            if (isTrue)
            {
            System.out.println("już nie prawda, bo t=16");
            }

    }
}
6

Zmienne nie są odświeżane automatycznie: skoro masz tylko jedno przypisanie do isTrue, jej wartość nie zostanie magicznie zmieniona - musisz zrobić to sam:

++t;
isTrue = (t == 15);

if (isTrue) {
  /* ... */
}
0

Porzuć na wieki wieków amen myślenie z C bool = int
Do dziś to kula u nogi tego/tych języków (C/C++) wywodząca się z assemblerów lat 1960tych

Niech int isTrue = 15; Ci się nawet nie przyśni

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