【问题标题】:Compare the current value with previous value in a loop in java在java中的循环中将当前值与前一个值进行比较
【发布时间】:2019-03-27 17:11:49
【问题描述】:

如何在java中的for循环中比较当前值和之前的值并确定它们是否不同?

在这里,我每次单击鼠标时都会循环该循环。因此i 取决于我点击的位置。

这里当前的i 和之前的i 都等于3。

https://www.dropbox.com/s/55dao9a9r8o4yis/Untitled%20picture%206.png

这里当前的i 等于7,之前的i 等于11。

https://www.dropbox.com/s/pj38l23ughn6ey9/Untitled%20picture%207.png

我正在尝试制作if 语句来比较之前i 的两个值与当前i

这是我的 for 循环

public void mousePressed() {      
    if (state == 0) {            
        for (int i = 0; i < 6; i++) {
            if (mouseX >= cards[i].x && mouseX <= cards[i].x + cards[i].WIDTH && mouseY >= cards[i].y && mouseY <= cards[i].y + cards[i].HEIGHT) {
                cards[i].flip();                     
            }               
        }

【问题讨论】:

  • 您只需将旧的i 存储在静态变量或实例变量中(取决于上下文)并在下一个循环中与该变量进行比较。如果您向我们展示您当前用于获取is 的代码,那么我们可以举个例子
  • 你能发布到目前为止你尝试了什么吗?
  • 请提供您的代码
  • 当你说当前和以前的i 是什么意思,因为for (int i = 0; i &lt; 6; i++) 将简单地通过 i=0-5
  • @理查德·廷格尔。查看他们向您展示 2 张卡片的图片以及卡片下 i 的值。第一个值取决于您首先点击的卡片,第二个值取决于您点击的第二张卡片。我想比较这两个值是否相等。

标签: java for-loop


【解决方案1】:

这就是你要找的东西

int currentValue=0;
    int lastValue=0;

    for(int i=0;i<10;i++){
        currentValue =i;

        if(i>0){
            System.out.println(" Current Value is "+currentValue+" Last Value is "+lastValue);
        }   

        lastValue=currentValue;
    }

【讨论】:

  • 在您的示例中,i 增加了 1。我的 for 循环每次单击都会循环一次,并且 i 会有所不同,具体取决于我单击的位置。例如,它可以是 1 和 3。或 4 和 6 或任何 2 个值。那么我如何跟踪以前的 i。
  • 这是伪代码,您可以根据需要修改此代码。这只是您如何管理当前迭代中的最后一个值的问题。
  • @user2944741 这种混淆是由于提到“i 的先前值”引起的,这是我之前试图解释的,我认为你的意思不是i
【解决方案2】:

以“1”开头的“i”,smth。喜欢:

    for (int i = 1; i < 6; i++) {
        if (cards[i].equals(cards[i-1])) {
            cards[i].flip();                     
        }  
    }

【讨论】:

  • 这行不通,因为 i 没有加一。每次点击循环循环一次,i 可以是从 0 到 6 的值。即,如果我点击第一张卡,我是 0,如果我点击第四张卡,我是 4,所以这取决于我点击的位置。我的问题是如何跟踪第一个 i 值和第二个 i 值。
【解决方案3】:
 Map<String, String> previousRow = lines.next();
    while (lines.hasNext()) {
        Map<String, String> row = lines.next();

        if (previousRow.get(key).equals(row.get(key)))
        {
            System.out.println("Found Duplicate Product " + row);
        }
        previousRow = row;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-23
    • 1970-01-01
    相关资源
    最近更新 更多