java - 为什么运算符不给出不同的结果而是使用 = 给出正确的答案
问题描述
static int count = 0;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
count = 0;
int n = sc.nextInt();
int arr[][] = new int[n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
arr[i][j] = sc.nextInt();
}
}
for (int i = 0; i < n ; i++) {
row(arr, n, i);
column(arr, n, i);
}
System.out.println(count);
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
System.out.print(arr[i][j] + " ");
}
}
}
static void row(int arr[][], int n, int row) {
int x, y, min, yHold = 0;
for (x = 0; x < n; x++) {
boolean yes = false;
min = arr[row][x];
for (y = row; y < n; y++) {
if (arr[y][x] < min) {
min = arr[y][x];
yHold = y;
yes = true;
}
}
if (yes) {
int temp = arr[row][x];
arr[row][x] = min;
arr[yHold][x] = temp;
count++;
}
}
如果我替换yes=true
为yes=!yes
,输出会变得不同。请帮助,似乎无法弄清楚。函数行所面临的部分问题是:
如果我们在第 i 行,那么我们必须从该行的 0 到 n-1 一次处理每一列。对于任何第 j 列,将 A[i][j] 与索引为 j 的列中存在的所有元素中的最小值以及从索引 i 到 n-1 的行交换。
解决方案
当你说yes = true
,它永远是真的。但是当你说的时候,yes = !yes
它会在真假之间来回翻转。
boolean yes = true;
for (int i = i < 10; i++) {
System.out.println(yes);
yes =! yes;
}
印刷
true
false
true
false
true
false
true
false
true
false
推荐阅读
- html - 为什么此文本居中对齐?
- pandas - 在特定时间重置的来自 DateTime 的 Cumsum
- macos - 如何获取 macOS Catalina 定期重启的原因?
- python - 复制里面的文字
使用 Python 将 HTML 标记为字符串变量
- jquery - jQuery Wordpress 5.6.1 - .toggle 不再工作
- javascript - Vuex 状态返回不正确的值
- javascript - 在节点js中将函数名作为参数传递
- python - 将重复值的键添加到列表 python
- python - 如何使用 python 自动化应用程序生命周期管理
- spring-boot - 带有@Profile 的控制器未加载