Java 如何创建查找最小数字的逻辑方法

Java 如何创建查找最小数字的逻辑方法,java,math,methods,logic,jlabel,Java,Math,Methods,Logic,Jlabel,我在创建按钮的逻辑部分时遇到问题。我试过很多方法来分类,但我想不出计算方法 我想要一个方法,一旦按下按钮,获取文本字段值,进行计算并输出答案 简单的例子 箱子数量不限,每个箱子可以装10件物品。用户在文本字段中输入一个随机值,表示他拥有的项目数,比如说21个,然后按下一个按钮 在后台,将执行一种方法,计算用户需要的最小盒子数量是多少个盒子。(10的多少个单位)。然后将答案设置为标签 希望你们能帮忙,提前谢谢 import java.awt.event.ActionEvent; import ja

我在创建按钮的逻辑部分时遇到问题。我试过很多方法来分类,但我想不出计算方法

我想要一个方法,一旦按下按钮,获取文本字段值,进行计算并输出答案

简单的例子

箱子数量不限,每个箱子可以装10件物品。用户在文本字段中输入一个随机值,表示他拥有的项目数,比如说21个,然后按下一个按钮

在后台,将执行一种方法,计算用户需要的最小盒子数量是多少个盒子。(10的多少个单位)。然后将答案设置为标签

希望你们能帮忙,提前谢谢

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class jjj implements ActionListener {

static JTextField tf;
JButton b;
static JLabel l2;

static int a;
static int quantity = 0;
static int units = 0;

static String g, s;
static JLabel q, hidden;

public jjj(){
    JFrame f = new JFrame();

    tf = new JTextField();
    tf.setSize(180, 30);
    tf.setLocation(10, 30);

    b = new JButton("How Many Boxes?");
    b.setSize(180, 30);
    b.setLocation(10, 70);
    b.addActionListener(this);

    JLabel l1 = new JLabel("Answer:");
    l1.setSize(85, 30);
    l1.setLocation(10, 200);

    l2 = new JLabel();
    l2.setSize(85, 30);
    l2.setLocation(105, 200);

    hidden = new JLabel();
    hidden.setVisible(false);

    f.setSize(208, 300);
    f.setLayout(null);
    f.setLocationRelativeTo(null);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);

    f.add(tf);
    f.add(b);
    f.add(l1);
    f.add(l2);
    f.add(hidden);
}


public void Answer(){

hidden.setText(tf.getText());
a = String.valueOf(hidden);
quantity = a;
Calc();
}

public void Calc()

if (quantity <= 100){
            units = units + 1;
        g = String.valueOf(units);
        l2.setText(g);
}
    if (quantity > 100){
              quantity = quantity - 100;
        units = units + 1;
        Calc();
    }
}

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

@Override
public void actionPerformed(ActionEvent arg0) {
    l2.setText(null);
    Answer();
}
}
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
导入javax.swing.JButton;
导入javax.swing.JFrame;
导入javax.swing.JLabel;
导入javax.swing.JTextField;
公共类jjj实现ActionListener{
静态JTextField tf;
按钮b;
静态jlabell2;
静态int a;
静态整数数量=0;
静态整数单位=0;
静态字符串g,s;
静态JLabel q,隐藏;
公共jjj(){
JFrame f=新的JFrame();
tf=新的JTextField();
tf.设置尺寸(180,30);
设置位置(10,30);
b=新的JButton(“有多少个盒子?”);
b、 设置大小(180,30);
b、 设定位置(10,70);
b、 addActionListener(此);
JLabel l1=新JLabel(“答案:”);
l1.设置尺寸(85,30);
l1.设定位置(10200);
l2=新的JLabel();
l2.设定尺寸(85,30);
l2.设定位置(105200);
隐藏=新的JLabel();
hidden.setVisible(false);
f、 设置大小(208300);
f、 setLayout(空);
f、 setLocationRelativeTo(空);
f、 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f、 setVisible(真);
f、 添加(tf);
f、 添加(b);
f、 添加(l1);
f、 添加(l2);
f、 添加(隐藏);
}
公开答案(){
hidden.setText(tf.getText());
a=字符串.valueOf(隐藏);
数量=a;
计算();
}
公共无效计算()
若有(数量100){
数量=数量-100;
单位=单位+1;
计算();
}
}
公共静态void main(字符串[]args){
新jjj();
}
@凌驾
已执行的公共无效操作(操作事件arg0){
l2.setText(空);
答案();
}
}

我不知道您当前的代码是什么,但使用类似这样的代码可能是您想要的:

public static int getNumberOfBoxes(double userInput, double numberOfTotalBoxes) {
    return (int)Math.ceil(userInput / numberOfTotalBoxes);
}
Math.ceil
四舍五入,因此
21.0/10.0
将导致
3


如果输入是整数,则可以执行以下操作:

public static int getNumberOfBoxes(int userInput, int numberOfTotalBoxes) {
    int numberOfBoxes = userInput / numberOfTotalBoxes;
    if(userInput % numberOfTotalBoxes != 0)
        numberOfBoxes++;
    return numberOfBoxes;
} 

在第二个示例中,您只需检查除法后是否有余数。如果有,您还需要一个方框。

您能给我们看一下您的代码吗?前几天,在思考我项目的一部分时,我意识到我不能使用除法运算符,因为我只使用整数(而不是小数)。这个问题最终就是我来这里的原因,我希望看看是否有人知道一个解决方案,甚至可能在他们之前就知道了。我希望从我的代码中,您可以看到我尝试的方法。这和其他尝试都失败了。你能给出一个输入和输出的例子吗?我敢肯定,在你的
Calc()
方法中调用我的第二个示例,并将返回值分配给你的
units
你就可以开始了。我不太确定你的意思是什么?除非你是说。。。我输入99,按下按钮,答案应该是1。但是,如果我键入199并按下按钮。我的方法应该意识到需要两个箱子,因为一个箱子只能装100件物品。这就是你想知道的吗?是的,这正是我的方法所做的
GetNumberOfBox(99100)
返回
1
,而
GetNumberOfBox(199100)
返回
2
。很抱歉,不同的变量名让我感到困惑。不管怎样,我把它分类了。谢谢你的帮助。