在我的下面的代码中,我浏览一个表并查找包含蓝色图标的列(如果是这种情况),我计算具有蓝色图标并包含单词“ble”的行数 但我所做的并不像我喜欢的那样工作。
for (int i = 0; i <myTable.getRowCount(); i++)
{
myTable.selectCell(i, 1);
if (myTable.getIcon(i, 0) == ("blue.gif"))
{
if (myTable.getRowValue(i, 0).contains("ble."))
{
int counter = 0;
counter = counter + 1;
System.out.println(counter);
}
}
}
答案 0 :(得分:0)
这是因为在向计数器添加1之前将计数器重置为0,因此计数器始终显示为1.
答案 1 :(得分:0)
根据我的意愿不起作用意味着你得到所有1,我猜?这是因为您每次都在if内重置计数器:
for (...) {
...
if (...) {
int counter = 0; // you do this every time
}
...
}
相反,将计数器移出循环:
int counter = 0; // only do it once, here
for (...) {
...
if (...) {
counter = counter + 1
}
...
}
答案 2 :(得分:0)
counter
变量必须在for
:
int counter = 0;
for (int i = 0; i <myTable.getRowCount(); i++) {
myTable.selectCell(i, 1);
if (myTable.getIcon(i, 0) == ("blue.gif")) {
if (myTable.getRowValue(i, 0).contains("ble.")) {
counter++;
System.out.println(counter);
}
}
}
答案 3 :(得分:-1)
看到你已经使用'i'作为你的计数器变量,就没有必要再制作另一个名为'counter'的了。
for (int i = 0; i <myTable.getRowCount(); i++) {
myTable.selectCell(i, 1);
if (myTable.getIcon(i, 0) == ("blue.gif")) {
if (myTable.getRowValue(i, 0).contains("ble.")) {
System.out.println(i + "");
}
}
}