学习记录(方法非原创)
你是否遇到过这种代码
String name="狂野";
char sex='男';
double height=180;
if(name.equals("狂野")){
if(sex=='男'){
if(height>=180){
System.out.println("好,你就是狂野,还钱");
}else{
System.out.println("不可能,你比狂野轻");
}
}else{
System.out.println("狂野是雄的,你不是");
}
}else{
System.out.println("你不是狂野");
}
如上,代码可读性很差,你可能会问,为什么不使&把判断条件合并在一起呢?想想,如果使用了&,能做到输出每一种情况吗?答案是显而易见的。而Switch又只能对单一变量多种情况进行判断,这里的业务情况是多个变量多个判断。
经验丰富的老手可能会说用责任链设计模式不就解决了嘛,但是今天,我并不会介绍这种设计模式,因为大家都会。我这里记录一种我今天学习到一种代码(力扣看水题的评论区学的姿势)。
以上情况,无非是判断条件前面多了几个空格,导致可读性很差,所以只要想办法去掉空格的影响,就能解决这个问题(当然不是让你直接删),可能说起来有些抽象,直接上代码
String name="狂野";
char sex='男';
double height=180;
do{
if(!name.equals("狂野")){
System.out.println("你不是狂野");
break;
}
if(sex!='男'){
System.out.println("狂野是雄的,你不是");
break;
}
if(height<180){
System.out.println("不可能,你比狂野轻");
break;
}
//这里也就是最终成功的操作,如果想把代码写在外层,可以使用flag=true if(flag){put(”“);}
System.out.println("好,你就是狂野,还钱");
}while(false);