Java 如果达到某个值,如何将for循环中的布尔值设置为true?
如果达到2,我想在for循环内将布尔additionalLogging值设置为true。如何将其设置为括号外的“全局”或“公共”值 我只希望下一个值8是真的 有什么想法吗Java 如果达到某个值,如何将for循环中的布尔值设置为true?,java,Java,如果达到2,我想在for循环内将布尔additionalLogging值设置为true。如何将其设置为括号外的“全局”或“公共”值 我只希望下一个值8是真的 有什么想法吗 public class userAnalytic { public static void main(String[] args) { boolean additionalLogging = false; System.out.println(additionalLogging);
public class userAnalytic {
public static void main(String[] args) {
boolean additionalLogging = false;
System.out.println(additionalLogging);
for (int i = 0; i <= 10; i++) {
System.out.println(i);
if (i == 5) {
if (additionalLogging == true) {
System.out.println("We found 5");
if (i == 2) {
additionalLogging = true;
if (i == 8) {
if (additionalLogging = true) {
System.out.println("8 has been found");
}
}
}
}
}
}
}
}
公共类用户分析{
公共静态void main(字符串[]args){
布尔额外记录=false;
System.out.println(附加日志记录);
对于(int i=0;i您需要停止嵌套所有if
条件。按照编写方式,每个内部if
都取决于外部条件是否为真,但i
显然不能同时为5
、2
和8
此外,在测试布尔值的真值时,不需要使用==true
,这是多余的。如果同时检查两个条件,则可以将它们与&
运算符组合,而不是嵌套它们
如果我正确理解您的意图,您可能打算这样做:
public class userAnalytic {
public static void main(String[] args) {
boolean additionalLogging = false;
System.out.println(additionalLogging);
for (int i = 0; i <= 10; i++) {
System.out.println(i);
if (i == 5 && additionalLogging) {
System.out.println("We found 5");
}
if (i == 2) {
additionalLogging = true;
}
if (i == 8 && additionalLogging) {
System.out.println("8 has been found");
}
}
}
}
公共类用户分析{
公共静态void main(字符串[]args){
布尔额外记录=false;
System.out.println(附加日志记录);
对于(inti=0;i您的第一个if是(i==5),所有内容都在这个语句中。
您可能想这样做:
公共类用户分析{
public static void main(String[] args) {
boolean additionalLogging = false;
System.out.println(additionalLogging);
for (int i = 0; i <= 10; i++) {
System.out.println(i);
if (i == 5) {
if (additionalLogging == true) {
System.out.println("We found 5");
}
}
if (i == 2) {
additionalLogging = true;
}
if (i == 8) {
if (additionalLogging = true) {
System.out.println("8 has been found");
}
}
}
}
publicstaticvoidmain(字符串[]args){
布尔额外记录=false;
System.out.println(附加日志记录);
对于(int i=0;iadditionalLogging=true
你的意思是=
?我认为你对该代码有更大的问题。请看,在每次迭代中,你检查“i”的值。如果是5,你输入if。在该if中,你检查“i”现在:在任何给定的时刻,我可以是5,2或8,但不是全部3…所以你永远不会达到if i==2的内容,因此你也不会达到if i的内容==8@AndyTurner值得一提的是,您指的是最内在的if条件。循环中唯一设置附加日志记录的代码
totrue
位于if
块中,该块仅在additionalLogging
已true
时输入。因此,这是一个逻辑问题,而不是语法问题;您永远不会将其设置为true
(但单独设置内部if(additionalLogging=true)
应该使用=
,而不是=
(另外:如果(x==true)
和如果(x==false)
,不要使用如果(x)
和如果(!x)
[很少有例外])只要使用如果(附加日志){
public static void main(String[] args) {
boolean additionalLogging = false;
System.out.println(additionalLogging);
for (int i = 0; i <= 10; i++) {
System.out.println(i);
if (i == 5) {
if (additionalLogging == true) {
System.out.println("We found 5");
}
}
if (i == 2) {
additionalLogging = true;
}
if (i == 8) {
if (additionalLogging = true) {
System.out.println("8 has been found");
}
}
}
}