java - 使用 While 循环、使用扫描仪输入变量

标签 java while-loop java.util.scanner

我需要帮助理解如何将变量从类链接到我的主类,它似乎在我之前使用过的某些代码实例中工作,但我不清楚它是如何工作的。在这种情况下,Dollar 变量需要从来自扫描仪输入的测试器类中的 main 方法中提取一个 integer 。另外,如何实现我的 while 循环并让它调用其他方法以便打印所需的变量。这个程序的重点是找出你可以用固定金额获得的最大酒吧,假设每个是 1 美元,每个酒吧有一张优惠券,6 张优惠券可以让你免费酒吧(里面有 1 张优惠券)。我是初学者,我不知道下一步该去哪里。

 public class VendingMachine 
        {
            public static int dollars;
            public static int coupons = dollars; 
            public static int bars = dollars; 

    public VendingMachine (int x) 
                    {
                    dollars = x;

                    }   
    public VendingMachine()
                    {
                    this (0); 
                    }

    public static void Bars() 
        {   
            int newbars;
            newbars = coupons/6;
            bars = bars + newbars;

        }

    public static void Coupons()
        {
            int newcoupons;
            newcoupons = (coupons % 6) +(coupons/6);
            coupons = newcoupons + coupons;
        }


    }

    import java.util.*;



    public class VendMachineTest{ 


    public static void main(String[]args, int coupons)

    {
        Scanner user_input = new Scanner(System.in);

        int dollars;
        System.out.println("Amount of Cash?");
        dollars = user_input.nextInt();

        VendMachineTest totalbars = new VendMachineTest();
        while ( coupons >= 6)
        {       
            VendMachineTest.Bars();
            VendMachineTest.Coupons();
        }
    }

    System.out.println( dollars +""+coupons+""+bars+"");
    }   

最佳答案

发布的代码有许多语法错误。要纠正这些错误,您应该考虑以下事项:

  • 虽然不是错误,但方法名称应以小写字符开头(根据良好的编程实践)
  • 您在一个类中声明了两个公共(public)类,其中出现错误(假设您在一个文件中使用这两个类)
  • 您将变量(优惠券和条形图)声明为未分配的变量(使用 public int coupons、bars;就足够了​​)。
  • 你的 main 方法正在使用一个 int (优惠券),它不会作为 main 方法在 JVM 中注册,因此它不会允许你运行该程序。
  • 程序创建一个新的 VendMachineTest 对象,该对象在应用程序期间未使用。

  • 在您的 VendingMachine 类中,您将一个 int 除以一个 int,这将产生一个 double(可能会损失精度)

您想要使用内部类来显示值。

public class VendMachineTest{

    public static void main(String[] args){
            //insert your test method here
    }

    private class VendingMachine{
        public double coupons, dollars, bars; // declare the variable
        // values declared here can be used in the VendMachineTest
    }

}

此外,如果您没有将 VendingMachine 类中的方法声明为静态方法会更好。如果创建一个新的 VendingMachine 对象

VendingMachine vendingMachine = new VendingMachine(dollars);

您可以使用 vendingMachine.getBars() 而不是使用类名。

关于java - 使用 While 循环、使用扫描仪输入变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19694567/

相关文章:

java - java编译器如何解析非导入的名称

java - 从java代码运行Linux命令(远程操作系统)

java - 如何在不使用 if 的情况下编写 Fibonacci Java 程序

java - java中if语句中的while循环

java - 从文件中读取整数并将值存储到数组中

Java - 提示时未能收集字符串

java - 如何在spring中引用另一个xml文件的bean

PHP:在另一个获取数据库行的数组中包含一个数组

php - while 循环中的 strpos() 永远不会结束

java - 扫描仪在使用 next() 或 nextFoo() 后跳过 nextLine()?