Corrija o código em anexo e aponte quais foram os erros de sintaxe e de lógica

import javax.swing.*;

class Main {
	
	public static void main(String[] args) {
		// Declaracao de variaveis
		int soma, a, b;
		Random aleatorio1 = new Random();
		Random aleatorio2 = new Random();
		a = aleatorio1.nextInt(7);
		b = aleatorio2.nextInt(7);
		
		soma = a + b;
		boolean teste = soma > 10;
		System.out.println("A soma de " + a + " e " + b + " é " + soma);
		
		// Estrutura de decisão
		if (teste) {
			System.out.println(soma + " é maior que 10!");
		} else if (soma = 10) {
			System.out.println(soma + " igual a 10!");
		}
		
		if (soma < 10 || soma > 0) {
			System.out.println(soma + " é positivo menor que 10!");
		} else {
			System.out.println("Passei pelo if!");
			soma == 0;
			
			// soma dos números de 1 a 6
			for (i = 1; i <= 6; i++) {
				soma = 0 + i;
				System.out.println(soma);
				i++;
				
				if (soma < 5 && teste == true) {
					System.out.println("O programa passa por aqui quando a variável soma está entre 5 e 10");
				}
			}
		}
	}
}

Sintaxe

} elseif (soma = 10) {

O operador “=” é de atribuição, para comparação deve-se usar “==”.

Lógica

soma < 10 || soma > 0

Para comparar se soma é positivo menor que 10 deve usar o operador AND (&&). Essa comparação retorna o seguinte:
para soma = 20
( soma > 0 OU soma < 10 ) == true. O resultado é true porque soma > 0 é verdadeiro, e como o operador “OR” ( || ) foi usado a sentença vai retornar verdadeiro quando qualquer uma das duas comparações for verdadeira.

System.out.println("Passei pelo if!");
soma == 0;

No caso acima soma == 0 está comparando ao invés de atribuir 0 a variável soma, ou seja, não tem nenhum efeito prático.

Esses são alguns. Tem mais, estude bastante e tente fazer o resto sozinho para aprender :slight_smile: