【问题标题】:how to create a logic method that finds minimum number如何创建找到最小数字的逻辑方法
【发布时间】:2023-04-09 13:17:01
【问题描述】:

我在创建按钮的逻辑部分时遇到问题。我尝试了很多方法对其进行排序,但无法想到计算方法。

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

简单的例子...

有无限数量的盒子,每个盒子可以容纳 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 math methods logic jlabel


【解决方案1】:

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

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 并按下按钮。我的方法应该意识到需要 2 个盒子,因为一个盒子只能装 100 件物品。这是你想知道的吗?
  • 是的,这正是我的方法所做的。 getNumberOfBoxes(99, 100) 返回 1getNumberOfBoxes(199, 100) 返回 2
  • 对不起,我使用的不同变量名让我感到困惑。反正我整理了。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2011-08-13
  • 1970-01-01
  • 2014-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-13
  • 1970-01-01
相关资源
最近更新 更多