import java.util.Scanner;
public class Cajero {
protected int dnisearch;
protected Cliente[] clientes = new Cliente[2];
public static void main(String[] args) {
int i;
int valor;
Cajero ca = new Cajero();
for (i=0;i<=1;i++)
{
ca.clientes[i] = new Cliente();
System.out.println("Ingrese Cliente, DNI y Saldo");
ca.clientes[i].setData();
}
System.out.println("ingrese dni para obtener saldo");
valor=ca.getSaldo();
if (valor != 0)
System.out.println("el saldo es "+valor);
else
System.out.println("No se encontro el Cliente");
}
public int getSaldo ()
{
Scanner s = new Scanner(System.in);
Cajero ca = new Cajero();
dnisearch = s.nextInt();
int k;
for (k=0;k<=1;k++)
{
if ( dnisearch == ca.clientes[k].dni )
return (ca.clientes[k].saldo);
else
return 0;
}
}
}
porque tengo ke definir 2 veces esto: Cajero ca = new Cajero(), intente ponerlo fuera de los metodos pero no funciona.
for (i=0;i<=1;i++)
{
if (clientes[i].dni == dnis)
r=clientes[i].saldo;
else
r=0;
}
import java.util.*;
public class Cajero {
public Cliente[] clientes = new Cliente[2];
public static void main(String[] args) {
int valor;
int dnisearch;
int i;
Scanner s = new Scanner(System.in);
Cajero ca = new Cajero();
for (i=0;i<=1;i++)
{
ca.clientes[i] = new Cliente();
System.out.println("Ingrese Cliente, DNI y Saldo");
ca.clientes[i].setData();
}
for (i=0;i<=1;i++)//compruebo q los datos estan bien ingresados
{
System.out.println("Cliente: "+ca.clientes[i].nombre);
System.out.println("Saldo: "+ca.clientes[i].saldo);
}
System.out.println("ingrese dni para obtener saldo");
dnisearch = s.nextInt();
valor= ca.getSaldo(dnisearch);
if (valor == -1)
System.out.println("DNI no encontrado");
else
System.out.println("saldo "+valor);
}
public int getSaldo (int dnis)
{
int i;
// r = -1 para indicar que no encontro el dni
int r=-1;
for (i=0;i<=1;i++)
{
if (clientes[i].dni == dnis)
{
r=clientes[i].saldo;
// Salir del for si encuentra el DNI
break;
}
// Eliminamos esto, que es innecesario
// else
// r=0;
}
return(r);
}
}
Supongan que tengo ke leer un entero en el metodo getSaldo(), deberia definir como lo hice en el main Scanner s = new Scanner(System.in); y ahi justamente es donde radica mi duda, porqué lo tengo que definir de nuevo??? si ya lo he hecho en el main.