Duvida?

não entendi muito bem, alguém pode me dizer que tipo de comparação esta sendo feita na linha 5 do código abaixo???

1public class exerccicio4 {
2 public static void main(String[] args) {
3 int a = 1;
4 boolean [] matriz = new boolean[1];
5 if (matriz[0]) a++;
6 System.out.println(a);
7 }
8}

se matriz na posição 0 for = true soma o valor de a com 1 !!

joaze,

Não é bem uma comparação, mas sim uma avaliação do conteúdo de uma variável booleana. Nossa, compliquei mais ainda né? :slight_smile:

Uma variável booleana é uma variável que pode ser verdadeira ou falsa. Por exemplo:

boolean terminou = true;

Então, poderíamos fazer em um trecho de código:

if (terminou) {
   System.out.println("Terminou esta true");
}
else  {
   System.out.println("Terminou esta false");
}

Um exemplo:

package com.testing.booleantest;

public class BooleanTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		boolean impar = true;
		
		for (int i = 0; i < 20; i++) {
			// essa chamada é mesma coisa que if (impar == true)
			if (impar) {
				System.out.println("IMPAR");
			}
			else {
				System.out.println("PAR");
			}
			
			// impar recebe o inverso de impar (NOT impar)
			// se era true, fica false e se era false, fica true
			impar = !impar;
		}
	}

}

Espero que te ajude.

Abraços!

como a matriz é um array de boolean, ele ta verificando somente se a matriz[0] é true ou false. Se for true, vai executar a++.