首页 > 解决方案 > 如果条件为真,有什么方法可以中断并重新启动 for 循环?

问题描述

如果 sum 优于 Tamis.PoidsInitial,我希望最后一个循环同时停止和重新启动?我的意思是删除所有输入的数据并仅重新启动循环而不是所有代码

public static void main(String[] args) {
    double sum = 0;
    DecimalFormat df = new DecimalFormat("0.###");
    Scanner input = new Scanner(System.in);
    Tamis[] listeDesTamis = new Tamis[16];
    System.out.println("Entrer SVP votre poids initial");
    Tamis.setPoidsInitial(input.nextDouble());
    System.out.println("Entrer SVP le tamis avec la taille la plus grande en mm");
    double maille = input.nextDouble();
    for (int i = 0; i < listeDesTamis.length; i++) {
        listeDesTamis[i] = new Tamis(maille);
        maille /= 1.2589;
    }
    for (Tamis e : listeDesTamis) {
        System.out.println("Entrer le refus pour le tamis "
                df.format(e.getTaille()) + " mm en grammes");
        e.setRefus(input.nextDouble());
        sum += e.getRefus();
    }
}

标签: java

解决方案


我认为您正在尝试执行以下操作:

do {
    for (Tamis e : listeDesTamis) {
        System.out.println("Entrer le refus pour le tamis "
                df.format(e.getTaille()) + " mm en grammes");
        e.setRefus(input.nextDouble());
        sum += e.getRefus();
        if (sum > Tamis.getPoidsInitial()) {
            System.out.println("Too much!! Start again.")
            break;
        }
    }
} while (sum > Tamis.getPoidsInitial());

 System.out.println("Phew. We have sufficient.")

我在那里复制了一个小表达式,以使其保持简单并给出一个不错的后置条件。

我倾向于避免使用布尔标志并且continue在可行的情况下。

Iterator如果超出限制,您可以使用重新分配或重置 ( )在一个循环中执行此操作ListIterator,但这也有点混乱。

(我希望 Tamis 不是粗鲁的东西。”)


推荐阅读