作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试学习 Java 并且必须创建一个小脚本来告诉您您选择的数字是否为平方数:
public class NumberShapes{
public static void main(String[] args) {
class Number {
int number;
public boolean isSquare(){
int y = 1;
int squareNumber = 1;
while (squareNumber <= number) {
y += 1;
squareNumber = (y * y);
}
if (squareNumber == number) {
return true;
}
else {
return false;
}
}
}
Number myNumber = new Number();
myNumber.number = 9;
System.out.println("Is " + myNumber.number + " a square number?: " + myNumber.isSquare());
}
}
myNumber = 9
.然后该逻辑应该采用每个整数
< 9
并将其平方。如果任何数的平方等于
myNumber
,然后
myNumber
是一个平方数(并返回
true
)否则它不是并返回
false
.
9
时,我得到的输出是
false
,什么时候应该是
true
.
9
,但不是比较
9
与
9
,比较
3
与
9
,以及
3 != 9
,它输出为
false
.这样对吗?
最佳答案
问题出在您的循环条件中:
while (squareNumber <= number) {
y += 1;
squareNumber = (y * y);
}
y
到达
3
, 和
squareNumber
变成
9
(3 * 3),你没有退出循环,因为
9 <= 9
是真的。因此,在循环的下一次迭代中,将 4 * 4 分配给
squareNumber
在结束循环之前,你返回
false
.
while (squareNumber < number)
.
关于java - 标记平方数的代码不起作用,这是为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62128632/
我是一名优秀的程序员,十分优秀!