O código esta rodando perfeito, mas com o operador (&&) ele não roda, alguém pode me falar, já com operador (||) ele roda, alguém me explica

package teste;
import java.util.Locale;
import java.util.Scanner;

public class valores {
	public static void main(String[] args) {
	Locale.setDefault(Locale.US);
	Scanner input = new Scanner(System.in);
	double a = input.nextDouble();
	double b = input.nextDouble();
	double soma = a+b;
	double mult = a*b;
    double c = (a==b) || (a!=b)? soma:mult;
    System.out.println(c);
	input.close();
}

qual é o resultado que vc ta tendo? o que vc queria e o que ta retornando?

Vc NÃO está atribuindo valores, vc está COMPARANDO valores.

== vc compara se “a” é igual a “b”
!= vc compara se “a” é diferente de “b”.

Quando vc compara, a lógica é OU um, OU outro. Por isso o OU ( || ) roda.

Já quando vc coloca &&, ele não vai rodar pq ele não pode ser igual E diferente ao mesmo tempo.

Espero ter ajudado.