首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >编程逻辑!:O

编程逻辑!:O
EN

Stack Overflow用户
提问于 2011-04-02 05:03:50
回答 4查看 456关注 0票数 2

因为缺乏看似合理的编程逻辑而被难住了。

我在SSIS的脚本任务中。我需要做一些数据tranformations..as下面..

代码语言:javascript
运行
复制
switch(LeadTime)
{

case: 1

WM1 = DAY1
WM2 = DAY2
WM3 = DAY3
WM4 = DAY4
WM5 = DAY5
WM6 = DAY6
WM7 = DAY7


case: 2

WM1 = DAY1 + DAY2
WM2 = DAY2 + DAY3
WM3 = DAY3 + DAY4
WM4 = DAY4 + DAY5
WM5 = DAY5 + DAY6
WM6 = DAY6 + DAY7
WM7 = DAY7 + DAY1


case: 3


WM1 = DAY1 + DAY2 + DAY3
WM2 = DAY2 + DAY3 + DAY4
WM3 = DAY3 + DAY4 + DAY5
WM4 = DAY4 + DAY5 + DAY6
WM5 = DAY5 + DAY6 + DAY7
WM6 = DAY6 + DAY7 + DAY1
WM7 = DAY7 + DAY1 + DAY2


..................

case: 7 

WM1 = DAY1 + DAY2 + DAY3 + DAY4 + DAY5 + DAY6 + DAY7
WM2 = DAY2 + DAY3 + DAY4 + DAY5 + DAY6 + DAY7 + DAY1 
WM3 = DAY3 + DAY4 + DAY5 + DAY6 + DAY7 + DAY1 + DAY2 
WM4 = DAY4 + DAY5 + DAY6 + DAY7 + DAY1 + DAY2 + DAY3 
WM5 = DAY5 + DAY6 + DAY7 + DAY1 + DAY2 + DAY3 + DAY4 
WM6 = DAY6 + DAY7 + DAY1 + DAY2 + DAY3 + DAY4 + DAY5 
WM7 = DAY7 + DAY1 + DAY2 + DAY3 + DAY4 + DAY5 + DAY6 


}

我如何围绕这一点构建一个循环,以使其成为良好的编程?我不知所措,因为它从中间值之后的两端相加。

这是我唯一能做的!:O

代码语言:javascript
运行
复制
case: 7

for(int i=0;i<LeadTime;i++)
{
WM1 += Array[i];
WM2 += Array[i];
...
WM7 += Array[i];
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-04-02 05:15:15

这样的东西应该适用于所有情况(假设数组是从零开始的):

代码语言:javascript
运行
复制
for(int i=0;i<LeadTime;i++)
{
  WM1 += Array[(0+i)%7];
  WM2 += Array[(1+i)%7];
  ...
  WM7 += Array[(6+i)%7];
}
票数 4
EN

Stack Overflow用户

发布于 2011-04-02 05:15:06

您可以使用模数来进行环绕。这应该适用于所有人:

代码语言:javascript
运行
复制
WM = new int[7];
for (int i = 0; i < LeadTime; i++) {
  for (int j = 0; j < WM.Length; j++) {
    WM[j] += Array[(i + j) % 7];
  }
}
票数 6
EN

Stack Overflow用户

发布于 2011-04-02 05:17:19

您要做的是创建一个函数,您可以在不同的情况下调用该函数。

代码语言:javascript
运行
复制
function foo(int LeadTime) {  
  for(int i=0; i < LeadTime; i++){  
      int k = i;  
      for (int j = 0; j < LeadTime; j++){  
          if (k > 7) {  k = 1; }  
          wm[i] += day[k];  
          k++;  
      }  
  }  
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5518828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档