Inicio > Ingeniería Informática > aleja26 > ¿como realizo un metodo boolean?

¿como realizo un metodo boolean?

Experto:
Usuario: Anónimo Fecha: 09/06/2009
Valoración: (5,00 sobre 5) Categoría: Ingeniería Informática
07/06/2009
Usuario
tengo este codigo y no funciona parece ser el mal uso del metodo booleano
import java.util.*;
public class catalogoCompras{
public static void main( String[] args) {
int costo, cantidad;
Scanner scanner;
scanner = new Scanner(System.in);
System.out.print("Ingrese Nombre del Articulo: ");
String art = scanner.next();
System.out.print("Ingrese Costo: ");
costo = scanner.nextInt();
System.out.print("Ingrese Cantidad: ");
cantidad = scanner.nextInt();
System.out.print("Desea Agregar Mas Articulos: ");
String sn = scanner.next();
private boolean siNo(String s) {
if (sn==s){
return true;
}else
return false;
System.out.print("Ingrese Nombre del Articulo: ");
String art2 = scanner.next();
System.out.print("Ingrese Costo: ");
costo = scanner.nextInt();
System.out.print("Ingrese Cantidad: ");
cantidad = scanner.nextInt();
scanner = new Scanner(System.in);
System.out.print("Desea Agregar Mas Articulos: ");
}else
return false;
System.out.print(costo+cantidad);
}
}
08/06/2009
christian20, experto respondiendo en Ingeniería Informática
Experto
Hola,
no soy capaz de entender qué objetivo tiene el código ya que presenta unos problemas muy graves. Te los enumero a continuación:
1) El metodo booleano está definido dentro de el metodo "main". Eso no es posible. No se puede definir un metodo dentro de otro, ni siquiera del "main", que no es más que otro metodo. Los metodos deben estar definidos a la misma altura. Si se quiere usar las variables del metodo "main" en el otro metodo se le deben pasar como parámetro
2) Las llaves de apertura y cierre de metodos no concuerdan. Se observa una estructura if (...){...}else...}else . No concuerdan las llaves y un if no puede tener 2 else
3) Si un metodo tiene las sentencias "return" nada más empezar, no ejecutará nunca las siguientes lineas de codigo. Ejemplo:
private boolean ejemplo(String s){
if (s.equals("una cadena")  // Los string se comparan con el metodo .equals(), nunca con "=="
return true;
else return false;
String x="otra cadena"; // Esto jamás se ejecutará. Ya que siempre se hará un "return" en la anterior instrucción
}
Espero que te sirva de ayuda para empezar a arreglarlo. Cualquier otra duda me dices
Saludos
08/06/2009
Usuario
soy estudiante de facultad de sistemas y es mi primer año
he estado intentando hacer el codigo dia y noche pero no me sale
y soy nuevo en esto ya que recien me enseñan este curso de java
quisiera que me ayudes a realizarlo porfavor..
el objetivo del codigo era realizar un programa de compras el cual debe aceptar tres conjuntos de datos. cada conjunto de datos es un articulo con su nombre, costo y cantidad depues de ingresar los detalles de cada conjunto, se debe preguntar al usuario si quiere mas articulos (hasta dos veces). luego que el usuario ha ingresado tres articulos, o cuando el usuario haya seleccionado NO ingresar mas articulos, el programa imprimira el costo total en sole y centimos y no esta permitido usar el uso de arrays ni tampoco bucles (while, for, etc) lo que hace  que ses mas dificil para mi.
espero que me puedas ayudar saludos cordialmente
09/06/2009
christian20, experto respondiendo en Ingeniería Informática
Experto
A ver, no suelo resolver problemas enteros sino que prefiero ayudar con problemas concretos y que la gente intente antes hacer las cosas, pero haré una excepción ya que estás bastante perdido.
Lo principal es que intentes entender cómo se hace, antes de preguntar. Te he comentado el código para ayudarte. Lo he hecho completo (una clase interna, colecciones, etc...), para que veas las posibilidades, aunque podía haberse hecho más sencillo, pero ya lo dejo a tu elección.
Repito, intenta entender cómo funciona antes de pedir más explicaciones.
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.Scanner;
public class catalogoCompras {
    // Clase para los articulos. Debería ir fuera, pero así queda solo un archivo
    public class Articulo{
        private String nombre=null;
        private float costo=0;
        private int Cantidad=0;
        public int getCantidad() {
            return Cantidad;
        }
        public void setCantidad(int cantidad) {
            Cantidad = cantidad;
        }
        public float getCosto() {
            return costo;
        }
        public void setCosto(float costo) {
            this.costo = costo;
        }
        public String getNombre() {
            return nombre;
        }
        public void setNombre(String nombre) {
            this.nombre = nombre;
        }        
    }
    //Metodo que pide los datos y devuelve un Articulo
    private static Articulo pedirArticulo(Scanner scanner){        
        catalogoCompras compras = new catalogoCompras();
        Articulo articulo = compras.new Articulo();        
        System.out.println("Ingrese Nombre del Articulo: ");
        String nombre = scanner.next();
        System.out.println("Ingrese Costo: ");
        int costo = scanner.nextInt();
        System.out.println("Ingrese Cantidad: ");
        int cantidad = scanner.nextInt();        
        articulo.setCantidad(cantidad);
        articulo.setCosto(costo);
        articulo.setNombre(nombre);        
        return articulo;
    }
    //Metodo principal
    public static void main( String[] args) {
        Scanner scanner;
        scanner = new Scanner(System.in);
        int articulosNumero=1;
        //Coleccion donde metermos los articulos
        Collection<Articulo> articulos = new ArrayList<Articulo>();        
        //Siempre pedimos el primero
        Articulo articulo = pedirArticulo(scanner);
        //Se añade a la coleccion
        articulos.add(articulo);        
        //Pedimos otro
        System.out.println("Desea Agregar Mas Articulos: ");
        String sn = scanner.next();
        // Si la respuesta contiene una "S" o "s" es SI
        if (sn.toLowerCase().indexOf("s")!=-1 ) {
            articulosNumero++;
            articulos.add(pedirArticulo(scanner));
            //Pedimos el tercero
            System.out.println("Desea Agregar Mas Articulos: ");
            sn = scanner.next();
            if (sn.toLowerCase().indexOf("s")!=-1 ) {
                articulosNumero++;
                articulos.add(pedirArticulo(scanner));
            }
        }        
        
        System.out.println("Articulos introducidos: "+articulosNumero);
        
        // Iteramos la coleccion
        Iterator<Articulo> iterator= articulos.iterator();
        float costoTotal=0;
        
        // No podemos usar bucles. Pero sabemos que el máximo son 3
        if (iterator.hasNext()){
            Articulo articulo2 = (Articulo)iterator.next();
            costoTotal+=articulo2.getCantidad()*articulo2.getCosto();
        }
        if (iterator.hasNext()){
            Articulo articulo2 = (Articulo)iterator.next();
            costoTotal+=articulo2.getCantidad()*articulo2.getCosto();
        }
        if (iterator.hasNext()){
            Articulo articulo2 = (Articulo)iterator.next();
            costoTotal+=articulo2.getCantidad()*articulo2.getCosto();
        }
        
        System.out.println("Costo total: "+costoTotal);
    }
    
}
Que no sirva de precedente, no voy a resolver problemas completos.
Saludos
09/06/2009
Usuario
gracias, te lo agradesco infinitamente desde ahora empezare a profundizar mas  este tema
Enlaces patrocinados