¿Como realizo un metodo boolean?

Tengo este código y no funciona parece ser el mal uso del método 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);
}
}

1 respuesta

Respuesta
1
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 método booleano está definido dentro de el método "main". Eso no es posible. No se puede definir un método dentro de otro, ni siquiera del "main", que no es más que otro método. Los métodos deben estar definidos a la misma altura. Si se quiere usar las variables del método "main" en el otro método se le deben pasar como parámetro
2) Las llaves de apertura y cierre de métodos no concuerdan. Se observa una estructura if (...){...}else...}else . No concuerdan las llaves y un if no puede tener 2 else
3) Si un método tiene las sentencias "return" nada más empezar, no ejecutará nunca las siguientes lineas de código. 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
Soy estudiante de facultad de sistemas y es mi primer año
he estado intentando hacer el código día y noche pero no me sale
y soy nuevo en esto ya que recién me enseñan este curso de java
quisiera que me ayudes a realizarlo por favor..
El objetivo del código 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 después de ingresar los detalles de cada conjunto, se debe preguntar al usuario si quiere más artículos (hasta dos veces). Luego que el usuario ha ingresado tres artículos, o cuando el usuario haya seleccionado NO ingresar más artículos, el programa imprimirá el costo total en sole y céntimos y no esta permitido usar el uso de arrays ni tampoco bucles (while, for, etc) lo que hace que ses más difícil para mi.
Espero que me puedas ayudar saludos cordialmente
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.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas