【发布时间】:2015-08-18 23:28:40
【问题描述】:
我制作了一个打印出操纵数组的程序,我想重新打印 pass[i] 数组中长度等于 7 的所有值,但 Java 似乎只重新打印整个集合。我猜我在处理布尔值时做错了什么......
String[] pass = new String[cnt];
int[] range = new int[cnt];
int[] arr = new int[cnt];
boolean valid;
for (int i = 0; i < cnt; i++) {
pass[i] = afname[i] + asname[i];
if (pass[i].length() == 7) {
System.out.println(pass[i]);
valid = true;
} else {
valid = false;
if ((7 - pass[i].length()) >= 3) {
range[i] = (int) Math.pow(10, (7 - pass[i].length())) - 100;
System.out.println(pass[i] + range[i]);
} else {
if ((7 - pass[i].length()) == 2) {
range[i] = 99;
System.out.println(pass[i] + range[i]);
} else {
range[i] = 9;
System.out.println(pass[i] + range[i]);
}
}
}
}
if(valid){
for(int i=0; i<cnt; i++){
System.out.println(pass[i]);
}
}
else{System.out.println("Cannot print");}
没有 if(valid) 语句的输出...
jbeebee
span900
baroura
apentz9
swillia
ajenn99
使用 if(valid) 语句输出...
jbeebee
span900
baroura
apentz9
swillia
ajenn99
Cannot print
【问题讨论】:
-
if(valid = true)=是赋值运算符,它将true分配给valid,然后评估为if(true),您需要的是比较运算符==,甚至更好地跳过@ 987654331@ 部分,因为它是多余的并且使您的代码容易出错if (valid)。 -
我现在说,如果(有效)但 Java 仍然不会打印任何东西
-
@Pshemo 我应该在哪里发布这类问题?
-
@tuxi 如果这不是唯一的问题,那么只需 edit 你的代码,你的问题就会成为话题。
-
您不能在
for-loop 之后添加else子句
标签: java arrays if-statement for-loop boolean