Originariamente inviato da Andrea1979
codice:
boolean neg=true;
for (int i = 0; i < M1.length; i++) {
for (int j = 0; j < M1[0].length; j++) {
neg = (M1[i][j] < 0 ?
(M2[i][j] < 0 ? true : false) :
(M2[i][j] < 0 ? false : true)
);
if (!neg) {
break;
}
}
}
se non hai presente la sintassi:
codice:
condizione ? true : false
ti rimando al manuale, comunque in breve vuol dire se si verifica la condizione, esegui la parte "true" altrimenti la parte "false"
quindi se i,j-esimo elemento di M1 è negativo verifica se i,j-esimo elemento di M2 è negativo, ed in caso neg resta true, altrimenti se i,j-esimo di M2 è positivo o nullo neg diventa false. Avviene l'esatto contrario se i,j-esimo di M1 è non negativo.
il break serve per uscire dal ciclo nel momento in cui si trovi una discrepanza.
PS: ovviamente l'operatore ternario "condizione ? true : false" si può tradurre con if-else. E' solo un modo più compatto (ed elegante) di scrivere la stessa cosa.