为了账号安全,请及时绑定邮箱和手机立即绑定

第二个 For 循环值取决于第一个 For 循环值

第二个 For 循环值取决于第一个 For 循环值

C#
烙印99 2021-08-22 17:45:30
我在以下代码中有两个 for 循环。我希望在执行 for 循环时具有以下值。当 n = 1 时,o = 0,1当 n = 2 时,o = 2,3当 n = 3 时,o = 4,5当 n = 4 时,o = 6,7当 n = 5 时,o = 8,9有可能吗?如果可能,请告诉我如何做。谢谢。for (int n = 1; n < dates.Count - 1; n++){    for (int o = n; o < n + 2; o++)    {        TravelPlanTouristAttractionNWeatherLabel.Text += "<b><ins>Place Number </ins></b>" + "<b><ins>" + o + "</b></ins>" + "<br/>";        TravelPlanTouristAttractionNWeatherLabel.Text += "<b>Place Name: </b>" + touristAttractionName[o] + "<br/>";        TravelPlanTouristAttractionNWeatherLabel.Text += "<b>Address: </b>" + touristAttractionFormattedAddress[o] + "<br/>";        TravelPlanTouristAttractionNWeatherLabel.Text += "<b>Phone Number: </b>" + touristAttractionFormattedPhoneNumber[o] + "<br/>";        TravelPlanTouristAttractionNWeatherLabel.Text += "<b>International Phone Number: </b>" + touristAttractionInternationalPhoneNumber[o] + "<br/>";        TravelPlanTouristAttractionNWeatherLabel.Text += "<b>Website: </b>" + touristAttractionWebsite[o] + "<br/>";        TravelPlanTouristAttractionNWeatherLabel.Text += "<br/>";        TravelPlanTouristAttractionNWeatherLabel.Text += "<b><ins>Opening Hours</ins></b>" + "<br/>";        for (int p = 0; p < 7; p++)        {            TravelPlanTouristAttractionNWeatherLabel.Text += touristAttractionOpeningHours[o, p] + "<br/>";        }    }}
查看完整描述

3 回答

?
月关宝盒

TA贡献1772条经验 获得超5个赞

根据您的示例,o在 range 中2*n-2 to 2*n-1,因此您可以使用以下内容:


for (int n = 1; n < dates.Count - 1; n++){

   for (int o = 2*n-2; o < 2*n; o++) {

      //Do your magic here

   }

}


查看完整回答
反对 回复 2021-08-22
?
胡说叔叔

TA贡献1804条经验 获得超8个赞

因为我可以在您的要求中看到一个模式。通过这种模式, o 将始终按顺序递增。而 n 将从 1 增加到日期的计数。


所以基本上你可以在不计算 n 的任何公式的情况下推导出 o。


(确保您是否想从 n = 某个其他数字开始循环,然后您希望 o 应该按照 n 保持初始值,但不会。但我不认为这是您的问题的情况)


这样做,


int o = 0;

for (int n = 1; n < dates.Count - 1; n++)

{

  ....

     for(int k = 0; k < 2; k++)

     {

          // this loop should be running for two iterations only.

          //even if loop is on k, use o

          o++;

     }

}

但如果你想建立关系。o 的循环刚好在 2xn 的值之前结束,o 的循环应该运行 2 次。


所以相对循环可以从


o = (2*n) - 2 到 o < 2*n。


for(int o = (2*n) - 2 ; o < 2*n; o++)


查看完整回答
反对 回复 2021-08-22
?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

试试这个 -


for (int n = 0; n < dates.Count -1, n++)

{

    for (int o = (n-1)*2; o < 2n; o++)

    {

        //Add your logic here :)

    }

}


查看完整回答
反对 回复 2021-08-22
  • 3 回答
  • 0 关注
  • 242 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信