Operador ternário grande

public class untitled {

public static void main (String args[]) {		
	
	boolean a = false;
	
	String s= (a = !a) ? (a = !a) ? "Primeira" : "Segunda" : (a = !a) ? "Terceiro" : "Quarto";
	
	System.out.println(s);
	
	
}

}

nesse ternário a variável “s” recebe “Segunda”, eu não entendi, alguem poderia me explicar por favor? (se der montar em condições if/else essa expressao por favor)

seu código na versão não ternária ficaria assim:

boolean a = false;
		String s = null;
		if (a = !a) {
			if (a = !a) {
				s = "primeiro";
			} else {
				s = "segundo";
			}
		} else {
			if (a = !a) {
				s = "terceiro";
			} else {
				s = "quarto";
			}
		}
		System.out.println(s);

então no primeiro if a variável “a” assume o valor de true, então ele entra no primeiro if [ (a = !a) ? “Primeira” : “Segunda” ], então atribui o valor de “a” para false, logo a variável “s” assume o valor de “Segunda”.

espero ter ajudado