【问题标题】:Run one of two for loops运行两个 for 循环之一
【发布时间】:2015-05-29 17:29:48
【问题描述】:

假设我有 2 个 for 循环,每个循环都包含一个 if 和 else 语句,我希望它能够工作,以便如果第一个 forloop 实现,则中断而不运行第二个 for 循环。可能是一个非常简单的解决方案,感谢任何帮助。

该程序的目的是读取用户输入并迭代给定的int,如果用户没有输入 int 值,则迭代超过 100。

由于这段代码除了执行两个循环外一切正常,我希望它执行一个或另一个。

package coreprog;
   ...

       for (...){
         ...
         if (...) {
           ...
          }
       else
         System.out.println(...);
      }  


      for (...){
         ...
         if (...) {
           ...
          }
       else
         System.out.println(...);

【问题讨论】:

  • 这些循环是否包含完全相同的逻辑,但仅根据用户输入或缺少循环数而有所不同?

标签: java for-loop


【解决方案1】:

在第一个 for 循环中保留一个布尔标志,并在 break 之前使其为真。基于它做任何你想做的事情。例如:-

boolean firstConditionAchieved= false;

 for (...){
         ...
         if (...) {
           firstConditionAchieved = true;
           ...
          }
       else
         System.out.println(...);
      } 

第二个循环:-

if(!firstConditionAchieved){
......


}

【讨论】:

  • 你打错了:fallse
  • 只是给遇到此问题的任何人的说明。这个答案是正确的,但是根据您的第二个if,您可能无法按照建议执行if(!firstConditionAchieved){。而是在第二个 for 循环之前创建一个 while 循环,如下所示:while (firstConditionAchieved){
【解决方案2】:

利用布尔变量并检查if条件中的布尔变量。如果设置了变量,则跳出循环,不执行第二个循环,反之亦然。

【讨论】:

    【解决方案3】:

    如果您想读取 int 值并对其进行迭代,或者如果未提供超过 100 个,则只需要一个循环。

    read N
    if not read or not valid N then N = 100
    for i = 1 to N do
        ...
    

    【讨论】:

      猜你喜欢
      • 2023-03-18
      • 2016-01-15
      • 2021-11-21
      • 1970-01-01
      • 1970-01-01
      • 2019-03-06
      • 1970-01-01
      • 2016-02-22
      • 1970-01-01
      相关资源
      最近更新 更多