Exercícios:
int[] a3=new int[a1.length];
for(int i=0; i<a1.length;
i++) a3[i]=a1[i]+a2[i];
int i;
int[][] m=...;
if(m==null)
System.out.println("m
nao contem referencia para um arranjo!");
else if(m.length==0)
System.out.println("m
refere a um arranjo sem elementos!");
else{
for(i=0; i<m.length;
i++) if(m[i]==null) break;
if(i<m.length)
System.out.println("m nao tem a linha "+(i+1));
else{
for(i=0; i<m.length; i++) if(m[i].length!=m.length) break;
if(i<m.length)
System.out.println("m tem "+m.length+" linhas, mas a linha "+
(i+1)+" tem "+m[i].length+" colunas!");
else
System.out.println("m representa uma matriz quadrada!");
}
}
int i;
int[][] m=...;
if(m==null)
System.out.println("m
nao contem referencia para um arranjo!");
else if(m.length==0)
System.out.println("m
refere a um arranjo sem elementos!");
else{
for(i=0; i<m.length;
i++) if(m[i]==null) break;
if(i<m.length)
System.out.println("m nao tem a linha "+(i+1));
else{
for(i=0; i<m.length; i++) if(m[i].length!=(i+1)) break;
if(i<m.length)
System.out.println("A linha "+(i+1)+" tem "+m[i].length+" colunas!");
else
System.out.println("m representa uma matriz triangular inferior!");
}
}
int lin,col=0;
varredura:
for(lin=0; lin<m.length;
lin++)
for(col=0;
col<m.length; col++)
if(!( (lin==col& m[lin][col]==1) |
(lin!=col& m[lin][col]==0) ) ) break varredura;
if(lin<m.length)
System.out.println("problema
com o elemento da linha "+
(lin+1)+", coluna "+(col+1));
else
System.out.println("representa
matriz identidade!");
}
Comentário
Um comando pode ser prefixado por um rótulo
(um identificador seguido de dois pontos) e um comando break aninhado
dentro deste comando pode fazer referência a este rótulo.
Quando o fluxo de controle atinge este comando break com rótulo,
são abandonadas as iterações, se existirem, e o fluxo
de controle vai para o comando seguinte ao comando rotulado. No caso acima,
se o break varredura é executado, o fluxo de controle abandona
os dois comandos for e vai para o comando if(lin<m.length).
Abaixo mostramos uma outra sugestão de solução sem
usar o comando break com rótulo.
boolean tudoOk=true;
for(lin=0; lin<m.length&tudoOk;
lin++)
for(col=0; col<m.length&tudoOk;
col++)
tudoOk=(lin==col&
m[lin][col]==1) | (lin!=col& m[lin][col]==0);
if(tudoOk)
System.out.println("representa
matriz identidade!");
else
System.out.println("problema
com o elemento da linha "+
lin+", coluna "+col);