`
zhanghaocool
  • 浏览: 792 次
  • 性别: Icon_minigender_1
  • 来自: 山东
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

对逻辑分支迭代结构扯淡下。

阅读更多
java刚入门,对其他的编程语言都不了解。

对编程语言不够熟悉,也无法精确表述是什么问题。

或许我表述的问题,已经被研究讨论过了,很少存在需要这样考虑逻辑,无伤大雅;或许应经被java或其他语言解决了,我还不知道;或许大部分人都知道怎么更好的解决了。如是这样,请点隐藏或新手,走人或更好的做法是告诉我和其他不明事实真相的群众该怎么做。

大家有没有这样同感,当有几个独立的逻辑,交叉一起判断的时候,逻辑分支的编写会变得很冗余。

不标准的伪代码,a、b、c在那些数字的取值范围内(就考虑0,1,2吧):
int a in(0,1,2...);
int b in(0,1,2...);
int c in(0,1,2...);

写逻辑的时候你会这样写:
if(a==0){
 if(b==0){
  if(c=0=){
   ...
  }else if(c==1){
   ...
  }else{
   ...
  }
 }else if(b==1){
  if(c==0){
   ...
  }else if(c==1){
   ...
  }else{
   ...
  }
 }else{
  if(c==0){
   ...
  }else if(c==1){
   ...
  }else{
   ...
  }
 }
}else if(a==1){
 if(b==0){
  if(c==0){
   ...
  }else if(c==1){
   ...
  }else{
   ...
  }
 }... ...
}else{
 ... ...
}

或者
if(a==0&&b==0&&c==0){
 ...
}else if(a==0&&b==0&&c==1){
 ...
}else if(a==0&&b==0&&c==2){
 ...
}else if(a==0&&b==1&&c==0){
 ...
}else if(a==0&&b==1&&c==1){
 ...
}else if(a==0&&b==1&&c==2){
 ...
}... ...


抛石子引玉:
定义这样几个布尔数组,保证有且仅有一个是true,对它们迭代(或者是什么):
int a in(0,1,2...);
int b in(0,1,2...);
int c in(0,1,2...);
boolean baa={a==0,a==1,a==2};
boolean bab={b==0,b==1,b==2};
boolean bac={c==0,c==1,c==2};

有那么一种强大的itr迭代(迭代数组,却没有共同的循环结构,只是实现分支,或叫分支更合适),有我幻想的结构。
itr(baa,bab,bac){
 ...;  //if(baa[0]&&bab[0]&&bac[0])
 ...;  //if(baa[0]&&bab[0]&&bac[1])
 ...;  //if(baa[0]&&bab[0]&&bac[2])
 ...;  //if(baa[0]&&bab[1]&&bac[0])
 ...;  //if(baa[0]&&bab[1]&&bac[1])
 ...;  //if(baa[0]&&bab[1]&&bac[2])
 ... ...
}

迭代达到注释中判断的效果,“...;”可以是个处理语句,或者一个“{}”包裹起来的语句块。

这么做是不是更简洁?虽然可能写着写着漏掉或弄混逻辑。


独立的逻辑还好想,稍微有点交叉的逻辑限于自己的启蒙程度还无法想象。



-----------------------------------我从来不掩饰自己的无知
分享到:
评论
2 楼 zhanghaocool 2010-03-16  
抛出异常的爱 写道
enum结构....
可以作到这种事



哦,对enum不太了解,我去看看
1 楼 抛出异常的爱 2010-03-16  
enum结构....
可以作到这种事

相关推荐

    Python程序设计:单双分支结构.pptx

    总的来说,通过理解和熟练运用Python的单双分支结构,我们可以实现逻辑判断,控制程序的流程,解决实际问题,如猜拳游戏中的胜负判断和用户登录验证。这些基本结构是编程中的基础,对于编写任何复杂的程序都至关重要...

    数据结构 模板与迭代器

    ### 数据结构中的模板与迭代器 #### 模板基础 在C++中,**模板**是一种强大的工具,它允许程序员编写泛化的代码——代码不是针对一个具体的类型,而是对一组类型进行操作。模板分为**函数模板**和**类模板**。 - ...

    第3单元 分支结构程序设计-2020.06.09.rar

    - **注意break和continue的使用**:在switch或循环结构中,合理使用break可以提前结束当前块的执行,continue则跳过当前迭代继续下一次循环。 - **逻辑运算符的运用**:了解并熟练使用逻辑与(&&)、逻辑或(||)以及...

    C语言重要知识点/分支结构,循环结构,函数,指针,文件

    理解条件表达式的真值判断和短路逻辑是掌握分支结构的关键。 循环结构在处理重复任务时非常有用,C语言中的循环有while、for和do-while三种形式。while循环基于一个条件来决定是否继续执行;for循环常用于已知循环...

    迭代学习Simulink仿真

    3. **循环结构**:为了实现迭代,我们需要一个循环结构(如`For Iterator`或`While` blocks),在每个迭代周期内,系统运行并更新控制器参数。 4. **反馈机制**:ILC依赖于误差反馈,因此需要在系统模型和控制器...

    数值分析雅可比迭代高斯迭代法实验报告.doc

    雅可比迭代法基于将系数矩阵A分解为对角部分D、上三角部分U和下三角部分L,即A=D+U+L。在每次迭代中,新解向量x的第j个分量由当前解向量P的前j-1个分量和后j+1个分量以及对角线元素计算得出。迭代公式如下: \[ x_j...

    logistic迭代算法matlab实现

    Logistic迭代算法是一种常用于解决非线性方程组,特别是单变量的迭代方法,它在数学、统计学和计算机...通过对源代码的研究,我们可以更深入地了解Logistic映射的动态行为,并掌握如何在Matlab中编写类似的迭代算法。

    迭代学习.zip_drawn6rt_迭代学习_迭代学习 matlab_迭代学习 程序_迭代学习程序

    迭代学习的核心思想是通过多次迭代,每次根据上一次的表现对控制策略进行微调。在MATLAB环境中,这种学习过程通常涉及编写循环结构,计算误差,并依据误差调整控制器参数。MATLAB作为一种强大的数值计算工具,拥有...

    雅克比迭代+高斯迭代+SOR迭代法Matlab程序

    接着,高斯迭代(Gauss-Seidel Iteration)是对雅克比迭代的改进,它在每次迭代中立即用新值替换旧值,即在计算下一行元素时使用当前行的新值,这使得高斯迭代通常比雅克比迭代更快收敛。迭代公式为x^(k+1)i = (1/di...

    基于迭代化增量开发模型的高职“数据结构”课程实验设计.pdf

    在信息技术教育领域,高职“数据结构”课程是培养学生程序设计能力、加深对算法和数据结构理解的重要课程。传统的教学方式往往侧重于理论知识的讲解和简单实例的演示,而与实际工程项目的需求存在较大差距。为了缩短...

    juzhendiedai_迭代矩阵振型_vibration_机械振动_矩阵迭代_迭代模态法_

    在机械工程领域,特别是在结构动力学分析中,"juzhendiedai_迭代矩阵振型_vibration_机械振动_矩阵迭代_迭代模态法_"这个主题涉及到的是一个关键的技术——迭代模态法,用于计算结构的固有频率和振型。这是一种用于...

    Jacobi迭代法和Gauss-Seidel迭代法求解线性方程组的根

    高斯-赛德尔迭代法通常比雅可比迭代法收敛更快,尤其是在矩阵接近对角主导的情况下。 C语言实现这两种迭代法时,首先需要处理矩阵和向量的数据结构,通常使用二维数组来表示矩阵,一维数组表示向量。接着,编写迭代...

    迭代器模式Demo

    在"IteratorPatternDemo"这个例子中,我们可以预期看到一个具体的迭代器实现,它可能包含了对某种数据结构(如数组、链表或树)的遍历逻辑。此外,还会有聚合对象的接口,以及至少一个实现了该接口的具体聚合类。...

    迭代器模式demo

    3. **具体迭代器实现**:根据聚合对象的内部结构实现迭代逻辑,可能使用了链表、数组或其他数据结构。 4. **具体聚合对象实现**:实现聚合对象接口,提供内部数据结构和创建具体迭代器的方法。 迭代器模式的优势...

    牛顿迭代法、对分法、雅可比迭代、高斯赛德尔迭代

    在数值计算领域,牛顿迭代法、对分法、雅可比迭代和高斯赛德尔迭代是四种常用且重要的算法,它们主要用于解决不同类型的数学问题。以下是对这些方法的详细阐述: 1. 牛顿迭代法(Newton's Iteration Method): ...

    matlab 迭代学习控制 并联结构(反馈+ilc)

    matlab 迭代学习控制 并联结构(反馈+ilc)

    迭代画图_迭代、中点、简单到复杂_

    迭代画图是一种基于数学算法的艺术表现形式,它利用迭代的过程,通过不断对图像进行精细的细分,创造出复杂的视觉效果。这种技术通常与计算机图形学、几何构造和算法艺术相关联。在“迭代画图_迭代、中点、简单到...

    java体系结构之迭代器模式.rar

    - **遍历的统一**:无论聚合对象的内部结构如何,都可以通过迭代器进行遍历。 - **灵活性**:迭代器模式使得增加新的聚合类和迭代器类变得容易,无需修改原有代码。 - **安全访问**:迭代器通常不允许修改聚合...

    设计模式-迭代器模式(讲解及其实现代码)

    4. 实现具体迭代器,根据聚合对象的结构定义遍历逻辑,实现`hasNext()`和`next()`方法。 迭代器模式的优点: 1. 支持以不同的方式遍历一个聚合对象。 2. 迭代器简化了聚合类。 3. 在同一个聚合上可以有多个遍历。 4...

    用C++实现的超松弛迭代法

    - 错误检查:添加逻辑来检测是否达到最大迭代次数或误差阈值。 - 输入/输出:提供接口读取输入矩阵和向量,以及输出最终解。 在提供的压缩包"超松弛迭代法2"中,可能包含了实现这些功能的C++源代码文件。通过阅读和...

Global site tag (gtag.js) - Google Analytics