在if和else语句中更改Integer Value

问题描述 投票:-2回答:3

我正在尝试在两者之间的if-and-else语句中创建一些Java代码。当我运行代码时,预期的输出应该是:“hello world hello world”但是我得到的是“hello hello hello hello”

我不知道我在这里做错了什么。有人可以告诉我这个问题吗?

int p = 1;

for (int i = 1; i < 5; i++) {
    if (p == 1) {    
        System.out.println("hello");
        p = 2;
    } else {
        System.out.println("world");
        p = 1;
    }
}
java for-loop if-statement
3个回答
2
投票

它不是您程序中的所有代码,但请查看此处:

    else
        System.out.println("world");
    p = 1;
}

最后的花括号不属于else语句的if-else部分,它属于包含for部分的if-else循环 - 改进代码的格式,你会看到差异。你的else部分没有花括号,因此只有在执行第二个条件时执行else字之后的第一行。


0
投票

根据@ajb评论,你只需将p = 1移动到else块:

for (int i = 1; i < 5; i++) {
   if (p == 1) {
       System.out.print("hello");
       p = 2;
   } else {
      System.out.print("world\n");
      p = 1;
    }
}

0
投票

你在else块上缺少一个大括号。

int p = 1;

for(int i = 1; i < 5; i++){
  if (p == 1){    
      System.out.println("hello");
      p = 2;
  }
  else {
      System.out.println("world");
      p = 1;
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.