Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Edwin en 14 de Abril 2016, 01:21
-
Tengo un problema al intentar compliar el ejercicio de If else, if else if Java. Estructura o esquema de decisión condicional. (CU00636B).
Cuando intento compilar la clase me genera un error donde me dice que "else without if" y me selecciona el else con el cual termino la clausula final else, pór favor ayuda en lo relacionado a este error. De paso que me digan si el resto de código está bien
public class Rueda{
private String tipoRueda;
private double numGrosor;
private double numDiametro;
private String nomMarca;
public Rueda(){
tipoRueda="";
numGrosor=0;
numDiametro=0;
nomMarca="";
}
public void tipoRueda(String valtipoRueda){
tipoRueda=valtipoRueda;
}
public void numGrosor(double valnumGrosor){
numGrosor=valnumGrosor;
}
public void numDiametro(double valnumDiametro){
numDiametro=valnumDiametro;
}
public void nomMarca(String valnomMarca){
nomMarca=valnomMarca;
}
public void comprobarDimenciones(String comprobarDimenciones){
if (numDiametro>1.4){
Systemp.out.println("El diametro de la llanta es para un vehiculo grande");
}
elseif(numDiametro>0.8 && numDiametro<=1.4 );{
System.out.println("El diametro de la llanta es para un vehiculo mediano");
}
else
System.out.println("La rueda es para un vehiculo pequeño.");
}
elseif((numDiametro>1.4 && numgrosor<0.4) || (numDiametro>0.8 && numDiametr<=1.4 &&numGrosor<0.25));{
System.out.println("El grosor para esta rueda es inferior al recomendado");
}
}
public String tipoRueda(){return tipoRueda;}
public double numGrosor(){return numGrosor;}
public double numDiametro(){return numDiametro;}
public String nomMarca(){return nomMarca;}
}
-
El error esta en que has puesto un if con su else y al final un elseif. Eso no es posible porque la estructura pone todos los elseif que necesites y al final el else:
Error:
...
if(ggggggg)
{
nnnnnn
}
else
{
mmmm
}
elseif(nnnnn)
{
}
....
Corrección:
...
if(gggggg)
{
nnnnnn
}
elseif(ppppp) //aquí todos los elseif que desees y al final else
{
mmmm
}
else
{
qqqqqq
}
....
Eso sucede es así porque los elseif son para poner más condiciones y el else es donde queda la última opción a ejecutar.
-
Primero que todo , gracias por dar respuesta a mi pregunta.
Revisando el problema veo que tienes toda la razon, lo que sucedio es que este codigo estaba modificado ; Al principio lo tenia bn, pero aun asi no me compilaba y me generaba el mismo error. Antes de hacer la pregunta primero intente solucionarlo y hay fue cuando modifique el codido. Ya deje todo en su lugar tal cual como lo habia escrito primero, nuevamente colocare el codigo para si me quieres ayudar lo compiles y veas a lo que me refiero... De ante mano gracias por tu ayuda. Edwin
public class Rueda{
private String tipoRueda;
private double numGrosor;
private double numDiametro;
private String nomMarca;
public Rueda(){
tipoRueda="";
numGrosor=0;
numDiametro=0;
nomMarca="";
}
public void tipoRueda(String valtipoRueda){
tipoRueda=valtipoRueda;
}
public void numGrosor(double valnumGrosor){
numGrosor=valnumGrosor;
}
public void numDiametro(double valnumDiametro){
numDiametro=valnumDiametro;
}
public void nomMarca(String valnomMarca){
nomMarca=valnomMarca;
}
public void comprobarDimenciones(String comprobarDimenciones){
if (numDiametro>1.4){
Systemp.out.println("El diametro de la llanta es para un vehiculo grande");
}
elseif(numDiametro>0.8 && numDiametro<=1.4 );{
System.out.println("El diametro de la llanta es para un vehiculo mediano");
}
elseif((numDiametro>1.4 && numgrosor<0.4) || (numDiametro>0.8 && numDiametr<=1.4 &&numGrosor<0.25));{
System.out.println("El grosor para esta rueda es inferior al recomendado");
}
else{
System.out.println("La rueda es para un vehiculo pequeño.");
}
}
public String tipoRueda(){return tipoRueda;}
public double numGrosor(){return numGrosor;}
public double numDiametro(){return numDiametro;}
public String nomMarca(){return nomMarca;}
}
-
Primero que todo , gracias por dar respuesta a mi pregunta.
Antes de hacer la pregunta primero intente solucionarlo y modifique el codido. Ya deje todo en su lugar tal cual como lo habia escrito primero, nuevamente colocare el codigo para si me quieres ayudar lo compiles y veas a lo que me refiero... De ante mano gracias por tu ayuda. Edwin
public class Rueda{
private String tipoRueda;
private double numGrosor;
private double numDiametro;
private String nomMarca;
public Rueda(){
tipoRueda="";
numGrosor=0;
numDiametro=0;
nomMarca="";
}
public void tipoRueda(String valtipoRueda){
tipoRueda=valtipoRueda;
}
public void numGrosor(double valnumGrosor){
numGrosor=valnumGrosor;
}
public void numDiametro(double valnumDiametro){
numDiametro=valnumDiametro;
}
public void nomMarca(String valnomMarca){
nomMarca=valnomMarca;
}
public void comprobarDimenciones(String comprobarDimenciones){
if (numDiametro>1.4){
Systemp.out.println("El diametro de la llanta es para un vehiculo grande");
}
elseif(numDiametro>0.8 && numDiametro<=1.4 );{
System.out.println("El diametro de la llanta es para un vehiculo mediano");
}
elseif((numDiametro>1.4 && numgrosor<0.4) || (numDiametro>0.8 && numDiametr<=1.4 &&numGrosor<0.25));{
System.out.println("El grosor para esta rueda es inferior al recomendado");
}
else{
System.out.println("La rueda es para un vehiculo pequeño.");
}
}
public String tipoRueda(){return tipoRueda;}
public double numGrosor(){return numGrosor;}
public double numDiametro(){return numDiametro;}
public String nomMarca(){return nomMarca;}
}
-
Primero que todo , gracias por dar respuesta a mi pregunta.
Antes de hacer la pregunta primero intente solucionarlo y modifique el codido. Ya deje todo en su lugar tal cual como lo habia escrito primero, nuevamente colocare el codigo para si me quieres ayudar lo compiles y veas a lo que me refiero... De ante mano gracias por tu ayuda. Edwin
public class Rueda{
private String tipoRueda;
private double numGrosor;
private double numDiametro;
private String nomMarca;
public Rueda(){
tipoRueda="";
numGrosor=0;
numDiametro=0;
nomMarca="";
}
public void tipoRueda(String valtipoRueda){
tipoRueda=valtipoRueda;
}
public void numGrosor(double valnumGrosor){
numGrosor=valnumGrosor;
}
public void numDiametro(double valnumDiametro){
numDiametro=valnumDiametro;
}
public void nomMarca(String valnomMarca){
nomMarca=valnomMarca;
}
public void comprobarDimenciones(String comprobarDimenciones){
if (numDiametro>1.4){
Systemp.out.println("El diametro de la llanta es para un vehiculo grande");
}
elseif(numDiametro>0.8 && numDiametro<=1.4 );{
System.out.println("El diametro de la llanta es para un vehiculo mediano");
}
elseif((numDiametro>1.4 && numgrosor<0.4) || (numDiametro>0.8 && numDiametr<=1.4 &&numGrosor<0.25));{
System.out.println("El grosor para esta rueda es inferior al recomendado");
}
else{
System.out.println("La rueda es para un vehiculo pequeño.");
}
}
public String tipoRueda(){return tipoRueda;}
public double numGrosor(){return numGrosor;}
public double numDiametro(){return numDiametro;}
public String nomMarca(){return nomMarca;}
}
[/quote]
en java no debes separar el elseif... asi:
if(condicionesA)
{
...
}
else if(condicionesB) // es "else if" y no "elseif"
{
...
}
else
{
...
}
esto a groso modo... dejame y compilo y veo si hay algo más por revisar.
Addendum:
Además de lo de elseif pegado, tenias ";" demás... considera al if junto a su else if y else una sola sentencia, ademas no lleva ";" al final dicha sentencia.
public class Rueda{
private String tipoRueda;
private double numGrosor;
private double numDiametro;
private String nomMarca;
public Rueda(){
tipoRueda="";
numGrosor=0;
numDiametro=0;
nomMarca="";
}
public void tipoRueda(String valtipoRueda){
tipoRueda=valtipoRueda;
}
public void numGrosor(double valnumGrosor){
numGrosor=valnumGrosor;
}
public void numDiametro(double valnumDiametro){
numDiametro=valnumDiametro;
}
public void nomMarca(String valnomMarca){
nomMarca=valnomMarca;
}
public void comprobarDimenciones(String comprobarDimenciones){
if (numDiametro>1.4){
System.out.println("El diametro de la llanta es para un vehiculo grande");
}
else if(numDiametro>0.8 && numDiametro<=1.4 ){
System.out.println("El diametro de la llanta es para un vehiculo mediano");
}
else if((numDiametro>1.4 && numGrosor<0.4) || (numDiametro>0.8 && numDiametro<=1.4 &&numGrosor<0.25)){
System.out.println("El grosor para esta rueda es inferior al recomendado");
}
else{
System.out.println("La rueda es para un vehiculo pequeño.");
}
}
public String tipoRueda(){return tipoRueda;}
public double numGrosor(){return numGrosor;}
public double numDiametro(){return numDiametro;}
public String nomMarca(){return nomMarca;}
}