java刚入门,对其他的编程语言都不了解。
对编程语言不够熟悉,也无法精确表述是什么问题。
或许我表述的问题,已经被研究讨论过了,很少存在需要这样考虑逻辑,无伤大雅;或许应经被java或其他语言解决了,我还不知道;或许大部分人都知道怎么更好的解决了。如是这样,请点隐藏或新手,走人或更好的做法是告诉我和其他不明事实真相的群众该怎么做。
大家有没有这样同感,当有几个独立的逻辑,交叉一起判断的时候,逻辑分支的编写会变得很冗余。
不标准的伪代码,a、b、c在那些数字的取值范围内(就考虑0,1,2吧):
写逻辑的时候你会这样写:
或者
抛石子引玉:
定义这样几个布尔数组,保证有且仅有一个是true,对它们迭代(或者是什么):
有那么一种强大的itr迭代(迭代数组,却没有共同的循环结构,只是实现分支,或叫分支更合适),有我幻想的结构。
迭代达到注释中判断的效果,“...;”可以是个处理语句,或者一个“{}”包裹起来的语句块。
这么做是不是更简洁?虽然可能写着写着漏掉或弄混逻辑。
独立的逻辑还好想,稍微有点交叉的逻辑限于自己的启蒙程度还无法想象。
-----------------------------------我从来不掩饰自己的无知
对编程语言不够熟悉,也无法精确表述是什么问题。
或许我表述的问题,已经被研究讨论过了,很少存在需要这样考虑逻辑,无伤大雅;或许应经被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])
... ...
}
迭代达到注释中判断的效果,“...;”可以是个处理语句,或者一个“{}”包裹起来的语句块。
这么做是不是更简洁?虽然可能写着写着漏掉或弄混逻辑。
独立的逻辑还好想,稍微有点交叉的逻辑限于自己的启蒙程度还无法想象。
-----------------------------------我从来不掩饰自己的无知