java - 如果条件为真,有什么方法可以中断并重新启动 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();
}
}
解决方案
我认为您正在尝试执行以下操作:
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 不是粗鲁的东西。”)
推荐阅读
- python - Python:带有CSV和Tensorflow的ValueError(CSV行有不同数量的字段)
- machine-learning - 使用带有标签概率总和的 fasttext 的多标签分类不一定等于零
- android - Android 架构组件:我应该将身份验证令牌保存在哪里?ViewModel 还是 SharedPreferences?
- git - 根据提交消息提取多个提交的 Git diff
- azure-devops - 无法从 Azure Devops 获取内部 Gitlab 的数据(获取 Git 获取失败,退出代码:128)
- typo3 - TYPO3:带有 EXT:news 的 OpenGraph 图像大小
- c# - 用 Plinq 替换 Task.WhenAll
- nim-lang - Nim 中的类似 Go 的并行性?
- firebase - 颤振 - 流不与 Firebase 连接
- r - 使用 knitr 从 Rmarkdown 创建 PDF 时减少标题边距