java - 我的程序不断循环并且从不满足要求
问题描述
大家好,我正在开发这个程序,该程序需要用户输入 3 个角度。第一种方法是 inputAngles,它告诉用户输入值。我必须拥有它,如果用户为角度 1 输入的值大于 180,或者如果他们为角度 2 输入的值使得角度 1 和角度 2 的总和大于 180,或者如果用户为角度 3 输入的值使得总和如果所有角度不等于 180,那么他们会收到再次输入该角度的提示。
我让程序不断循环,永远不会继续下一个方法。最后一个角度不断循环,永远不会终止。任何帮助将不胜感激。
public int inputAngles() {
int sumofAngOneTwo = angle1 + angle2;
while (true) {
System.out.println("Enter the first angle of the triangle :");
angle1 = input.nextInt();
while (angle1 > 180) {
System.out.println("First angle must be less than 180");
System.out.println("Enter the first angle of the triangle :");
angle1 = input.nextInt();
}
System.out.println("Enter the second angle of the triangle :");
angle2 = input.nextInt();
while (angle2 < sumofAngOneTwo) {
System.out.println("Sum of first two angles must be less than 180");
System.out.println("Enter the second angle of the triangle :");
angle2 = input.nextInt();
}
int sumOfAngles = angle1 + angle2 + angle3;
System.out.println("Enter the third angle of the triangle :");
angle3 = input.nextInt();
while (sumOfAngles >= 180) {
System.out.println("Try again");
System.out.println("Enter the third angle of the triangle :");
angle3 = input.nextInt();
}
}
}
解决方案
重要的是要理解这不是数学等式的陈述:
int sumofAngOneTwo = angle1 + angle2;
也就是说,它并没有说无论 angle1 和 angle2 的未来值如何,sumOfAngOneTwo 将等于它们的总和。
而是赋值的编程操作,在执行中遇到的点,取当时的角度1的值,当时的角度2的值,计算它们的和,并将结果赋给变量sumOfAngOneTwo .
此后,角度 1 和角度 2 的变化不会影响 sumOfAngOneTwo 的值。这将保持不变,直到执行另一个赋值语句,其中 sumOfAngOneTwo 出现在左侧。
tl; 博士 - 这是一个任务,而不是一个等式。
推荐阅读
- python - 在模型中添加项目
- reactjs - React:获取调用的 then 函数未被调用
- maven - Maven 执行器插件未执行
- python - 我有一个关于 MIMEMultipart 的问题
- r - 在 R 中使用 psych 预测 PCA
- python - 在 imdb 数据集上使用朴素贝叶斯研究情感分析器,以下是获取评论功能,从 ds 获取评论。但给出错误
- php - 贝宝 API 上下文
- javascript - React js 单元测试返回 Received: 序列化为相同的字符串
- java - 如何使用 PowerMockito 模拟 Java 日历
- java - 如何在 Anychart 中将序数颜色转换为线性颜色热图?