-1

我正在制作一个程序,但我需要添加一个方法来获取公共服务的总金额,但问题在于返回变量被一个值修改,如果......但如果这个值是孤立的......这可能会发生吗?

这是代码:

package primer.proyecto.programado;

import javax.swing.JCheckBox;
import javax.swing.JOptionPane;


public class Main 
{

    public static int servicios()
    {
        int servicios=0;
        int servivio11=0;
        int servivio22=0;
        int servivio33=0;
        int servivio44=0;

        String msg = "Servicios:";

        JCheckBox servicio1 = new JCheckBox ("Electricidad");
        JCheckBox servicio2 = new JCheckBox ("Agua");
        JCheckBox servicio3 = new JCheckBox ("Telefono");
        JCheckBox servicio4 = new JCheckBox ("Otros");

        Object[] msgContent = {msg,servicio1,servicio2,servicio3,servicio4};

        int n = JOptionPane.showConfirmDialog(null,msgContent,
                "Title", JOptionPane.YES_NO_OPTION);

        boolean servicio1s = servicio1.isSelected();
        boolean servicio2s = servicio2.isSelected();
        boolean servicio3s = servicio3.isSelected();
        boolean servicio4s = servicio4.isSelected();

        if (servicio1s == true)
        {
            int servicio11 = Integer.parseInt(JOptionPane.showInputDialog(
                    "Favor digite el monto a pagar por el servicio: Electricidad"));
        }
        if (servicio2s == true)
        {
            int servicio22 = Integer.parseInt(JOptionPane.showInputDialog(
                    "Favor digite el monto a pagar por el servicio: Agua"));
        }
        if (servicio3s == true)
        {
            int servicio33= Integer.parseInt(JOptionPane.showInputDialog(
                    "Favor digite el monto a pagar por el servicio: Telefono"));
        }
        if (servicio4s == true)
        {
            int servicio44 = Integer.parseInt(JOptionPane.showInputDialog(
                    "Favor digite el monto a pagar por el servicio: Otro"));
        }

        servicios=servicio11+servicio22+servicio33+servicio44;

        return servicios;

    }

    public static void main(String[] args) 
    {
        servicios();    
    }
}

我正在使用 netbeans 和 JavaApplication 部门......

谢谢你的帮助!

4

2 回答 2

1

此行的所有右侧变量:

servicios = servicio11 + servicio22 + servicio33 + servicio44;

范围仅限于以前的if语句,因此无法解决。您需要使它们在与您的方法相同的范围内可见servicios

int servicio11 = 0;
if (servicio1s) {
   servicio11 = Integer.parseInt(...);
}
...
于 2013-03-30T20:44:56.787 回答
0

认为你想要的更像是这样的:

int servicios = 0;

if (servicio1s == true){
    servicios += Integer.parseInt(JOptionPane.showInputDialog("Favor digite el monto a pagar por el servicio: Electricidad"));
}

if (servicio2s == true){
    servicios += Integer.parseInt(JOptionPane.showInputDialog("Favor digite el monto a pagar por el servicio: Agua"));
}

if (servicio3s == true){
    servicios += Integer.parseInt(JOptionPane.showInputDialog("Favor digite el monto a pagar por el servicio: Telefono"));
}

if (servicio4s == true){
    servicios += Integer.parseInt(JOptionPane.showInputDialog("Favor digite el monto a pagar por el servicio: Otro"));
}

return servicios;

因此,如果所有 servicio 布尔值都为假,则 servicios 为 0。这是你的意图吗?

于 2013-03-30T20:51:07.523 回答