boa tarde o compilador me da um erro que eu nao sei o pq ??
package cap08;
import java.io.ObjectInputStream.GetField;
import javax.swing.JOptionPane;
public class Quadrado extends Quadrilatero{
public Quadrado(int l1, int l2, int l3, int l4) {
super(l1, l2, l3, l4);
}
/**
* @param args
*/
public static void main(String[] args) {
int [] lados=new int [4];
try{
for(int i=0; lados.length; i++){
lados[i]= Integer.parseInt(JOptionPane.showInputDialog("Digite o lado "+(i+1)+"do quadrado"));
if(lados[i]==lados[i+1]){
throw new IllegalArgumentException("o quadrado tem 4 lados iguais ");
}
}
}catch (Throwable t) {
// TODO: handle exception
System.out.println("erro:"+t.getMessage());
t.printStackTrace();
}
System.out.println("finalizado");
}
}
o erro q acusa e o seguinte:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Type mismatch: cannot convert from int to boolean
at cap08.Quadrado.main(Quadrado.java:21)
so q de onde esta vindo o boolean ?? nao criei nenhum boolean e o tipo de retorno do lenght e int?? pq ta dando isso???
[quote=TASF]boa tarde o compilador me da um erro que eu nao sei o pq ??
package cap08;
import java.io.ObjectInputStream.GetField;
import javax.swing.JOptionPane;
public class Quadrado extends Quadrilatero{
public Quadrado(int l1, int l2, int l3, int l4) {
super(l1, l2, l3, l4);
}
/**
* @param args
*/
public static void main(String[] args) {
int [] lados=new int [4];
try{
for(int i=0; lados.length; i++){
lados[i]= Integer.parseInt(JOptionPane.showInputDialog("Digite o lado "+(i+1)+"do quadrado"));
if(lados[i]==lados[i+1]){
throw new IllegalArgumentException("o quadrado tem 4 lados iguais ");
}
}
}catch (Throwable t) {
// TODO: handle exception
System.out.println("erro:"+t.getMessage());
t.printStackTrace();
}
System.out.println("finalizado");
}
}
o erro q acusa e o seguinte:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Type mismatch: cannot convert from int to boolean
at cap08.Quadrado.main(Quadrado.java:21)
so q de onde esta vindo o boolean ?? nao criei nenhum boolean e o tipo de retorno do lenght e int?? pq ta dando isso???[/quote]
veja essa linha: Type mismatch: cannot convert from int to boolean
O erro é nitido, vc esta tentando converter um tipo Integer(int) para um tipo Boolean(boolean)
package cap08;
import java.io.ObjectInputStream.GetField;
import javax.swing.JOptionPane;
public class Quadrado extends Quadrilatero{
public Quadrado(int l1, int l2, int l3, int l4) {
super(l1, l2, l3, l4);
}
/**
* @param args
*/
public static void main(String[] args) {
int [] lados=new int [4];
try{
for(int i=0; i < lados.length(); i++){ // Você tinha esquecido de fazer a condição de parada do laço, i < lados.lenght()
lados[i]= Integer.parseInt(JOptionPane.showInputDialog("Digite o lado "+(i+1)+"do quadrado"));
if(lados[i]==lados[i+1]){
throw new IllegalArgumentException("o quadrado tem 4 lados iguais ");
}
}
}catch (Throwable t) {
// TODO: handle exception
System.out.println("erro:"+t.getMessage());
t.printStackTrace();
}
System.out.println("finalizado");
}
}
Eh como disse o matheuslmota,
o problema esta no seu for, voce esta não esta especificando quando parar o loop, ou seja voce montou o for de maneira errada.
O correto seria,
for(int i=0; i < lados.length; i++){
...
}
Enquanto i for menor que lados.length ele ira executar o for.
t+