java - Loop is turning my negative integer positive in java
问题描述
This code in java seems to be turning my negative integers positive. I'm passing in a -9 and 1 and in my debugger, the i in my first for loop is starting at 27 instead of negative 27. What's even weirder is that if I add a line to make i = -1, it toggles between -27 and -28 forever. Can someone tell me why?
I'm passing in a -9, 1. The result should be a number divisible by 3 and a modulus of 5. I think -29 meets this criteria.
public static int getIntegerH(int x, int y) {
System.out.println("The result of the getIntegerH method:");
boolean flag = true;
int n = x * 4; // 36
int m = x * 3; // 27
if (x == y) {
flag = true;
}
if (x < 0 || y < 0) {
for (int i = -m; i < -n; i++) {
if (i / 3 == x && i % 5 == y ) {
System.out.println(i);
flag = false;
}
}
} else if (x > 0 || y > 0) {
for (int i = m; i < n; i++) {
if (i / 3 == x && i % 5 == y ) {
System.out.println(i);
flag = false;
}
}
}
if (flag == true) {
System.out.println("No such number");
}
return 0;
}
解决方案
您将 i 设置为 m 的负数。
for (int i = -m; i < -n; i++) {
如果您为 x 传递了 -9,则 m 为 -27,而 -27 的负数为 27。
作为旁注,您还需要查看您的状况和增量。如果你想从 -27 倒数到 -36,你会想要这样的东西:
for (int i = m; i >= n; --i ) {
推荐阅读
- android - Android Studio 无法解决 AsyncTask
- artifactory - 是否可以在没有 GUI 的情况下在 JFrog Artifactory 中添加存储库?
- python - 如何通过索引从较大的矩阵中选择一个小矩阵
- javascript - 在量角器 For 循环中执行多个 IT 块以进行 Web 测试
- ruby - ruby 初始化方法 - 初始化参数的目的
- sql - 如果不存在,则在表中插入新行
- r - 从命令行运行 Rscript 时如何转义空格?
- python - Python3.7.1:`10**3.5`:无法将字符串转换为浮点数:3.5
- c# - 调试时忽略某个位置的异常?
- arrays - java.sql.SQLException:通过jdbcTemplate的参数索引超出范围(1>参数个数,即0)