`
aaronjiu_00
  • 浏览: 68923 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Reverse Conditional(颠倒条件表达式)

阅读更多

WHAT

如果只有一个then,而没有else的分支条件表达中,出现否定操作符,还算合情合理,例如:

if (!someCondition()) {
	doSomeThingsForFalse();
}

 但是,如果有两个分支,否定的条件表达式在if分支,这个条件语句就会降低可读性,需要颠倒条件表达式

 

WHEN

  1. 否定操作在前一个分支的ifthenelse语句

HOW

重构前的代码

 

package reverse.conditional;

public class SomeClass {

	public void someMethod() {
		if (!someCondition()) {
			doSomeThingsForFalse();
		} else {
			doSomeThingsForTrue();
		}
	}

	private boolean someCondition() {
		return false;
	}

	private void doSomeThingsForTrue() {
		// do some things for true		
	}

	private void doSomeThingsForFalse() {
		// do some things for false		
	}
	
}
   

这个重构,需要手动操作,没有Eclipse现有重构工具的支持

  1. 去除条件表达式的否定操作符
  2. 交换分支语句

重构后的代码

 

package reverse.conditional;

public class SomeClass {

	public void someMethod() {
		if (someCondition()) {
			doSomeThingsForTrue();
		} else {
			doSomeThingsForFalse();
		}
	}

	private boolean someCondition() {
		return false;
	}

	private void doSomeThingsForTrue() {
		// do some things for true		
	}

	private void doSomeThingsForFalse() {
		// do some things for false		
	}
	
}
分享到:
评论

相关推荐

    逆波兰表达式算法_表达式_

    逆波兰表达式(Reverse Polish Notation,RPN)算法是一种基于后缀表示法的计算方法,主要用于解决数学表达式的求值问题。它将运算符放置在操作数之后,避免了括号的使用,使得表达式求值的过程更为直观。在这个算法...

    后缀表达式求值(c语言版)

    后缀表达式,也称为逆波兰表示法(Reverse Polish Notation, RPN),是一种数学表达式的写法,其中运算符位于其操作数之后。例如,通常的中缀表达式`3 + 4`在后缀表达式中写作`3 4 +`。这种表达式的优点是无需括号来...

    将原表达式转换成后缀表达式——表达式求值问题

    在这个特定的问题中,我们关注的是“表达式求值”问题,特别是如何将原表达式转换为后缀表达式,也称为逆波兰表示法(Reverse Polish Notation, RPN),然后用C语言来实现这个过程。C语言是一种通用的、中级编程语言...

    基于栈实现的中缀表达式转换为后缀表达式

    这里我们关注的是将中缀表达式转换为后缀表达式,也称为逆波兰表示法(Reverse Polish Notation, RPN)。这个过程是通过使用数据结构栈来完成的,对于理解和编写计算表达式的程序至关重要。下面我们将详细探讨这一...

    中缀表达式转换为后缀表达式及逆波兰式求值

    相反,后缀表达式,也称为逆波兰式(Reverse Polish Notation, RPN),则是一种没有括号的表示法,运算符位于它们的操作数之后,如 `2 3 +`。后缀表达式在计算和解析上更为高效,尤其是通过栈数据结构进行求值。 **...

    中缀表达式转换成后缀表达式

    这里我们关注的是将中缀表达式转换为后缀表达式,也称为逆波兰表示法(Reverse Polish Notation, RPN)。中缀表达式是我们通常使用的数学表达式形式,其中操作符位于操作数之间,例如 "2 + 3"。而后缀表达式则是操作...

    STL-后缀表达式的计算

    1. **后缀表达式的概念**:了解什么是后缀表达式(也称为逆波兰表示法或Reverse Polish Notation, RPN),以及其在计算机科学中的应用。 2. **转换成后缀表达式的方法**:介绍如何将一个包含括号的标准数学表达式...

    正则表达式+逆波兰式的计算器

    逆波兰表达式(Reverse Polish Notation,RPN),又称后缀表达式,是一种无括号的数学表达式表示方法,运算符位于其操作数之后。这种表示方式非常适合于计算机处理,因为可以通过栈数据结构轻松地进行计算,无需考虑...

    什么是Linq表达式什么是Lambda表达式.pdf

    Lambda表达式通常用在LINQ查询中,用于提供查询表达式式的逻辑部分,如过滤(Where)和投影(Select)条件。 点标记(也被称为方法链语法或方法调用链)是LINQ中使用Lambda表达式的一种特定书写风格,通过一系列...

    利用堆栈表达式求值源代码

    这种方法通常称为逆波兰表示法(Reverse Polish Notation,RPN)或者后缀表达式,它避免了括号的使用,并通过堆栈来处理运算符和操作数。 描述中提到的“适合数值是一位的表达式”,意味着这个实现可能仅处理单个...

    regex-reverse:正则表达式还原器,生成与提供的正则表达式匹配的字符串

    $ composer require niklongstone/regex-reverse: ' ^0.4.0 ' 用法 <?php require ( 'vendor/autoload.php' ); use RegRev \ RegRev ; echo RegRev :: generate ( '\d' ); //ouput a random number 有关有用的...

    Expression of Value表达式计算

    在本题"Expression of Value表达式计算"中,我们需要处理的是带有括号的算术表达式,这类问题通常可以通过逆波兰表示法(Reverse Polish Notation, RPN)或者称为后缀表达式的方式来解决。这是一种没有括号,而是...

    数据结构表达式翻译

    而后缀表达式,也称为逆波兰表示法(Reverse Polish Notation, RPN),操作符位于操作数之后,如 `2 3 4 * +`。后缀表达式在计算上非常方便,因为它可以使用栈来解析和求值。 `MyStack.h` 文件定义了一个模板类 `...

    表达式求值 数据结构

    例如,使用逆波兰表示法(Reverse Polish Notation,RPN),也称为后缀表达式,可以简化表达式求值的过程。在RPN中,运算符位于它们的操作数之后,这样我们就可以通过简单的栈操作来完成求值。 实现表达式求值的...

    后缀表达式(逆波兰式)求值

    2. 逆波兰式(Reverse Polish Notation) 逆波兰式是一种数学表达式表示法,特点是运算符位于操作数之后。例如,表达式 3*5 可以写成 35*。逆波兰式的优点是可以简化表达式的计算过程。 3. 后缀表达式求值 后缀...

    数学表达式判断以及计算

    3. **逆波兰表示法(Reverse Polish Notation, RPN)**:也称为后缀表示法,是计算表达式的一种常见方式。在这个表示法中,操作符位于其操作数之后,使得无需括号就能明确表达优先级。通过将表达式转换为RPN,然后...

    表达式类型的实现

    例如,逆波兰表示法(Reverse Polish Notation, RPN)利用栈来实现表达式的计算。 5. **错误处理**:在实际实现中,必须考虑语法错误和类型错误。例如,如果操作数类型不匹配或者运算符使用不当,程序需要能够识别...

    IOS Swift 表达式计算机

    本项目"Swift 表达式计算机"就是利用Swift实现的一个功能完备的计算工具,它特别采用了逆波兰表示法(Reverse Polish Notation, RPN)以及栈数据结构来解析和计算数学表达式。以下是对这个项目的详细解析: 1. **逆...

    表达式求值,加减乘除混合运算

    对于简单的算术表达式,我们通常使用逆波兰表示法(Reverse Polish Notation, RPN),也称为后缀表示法。在这种表示法中,操作符位于其操作数之后,消除了需要括号的情况。然而,为了处理包含括号的复杂表达式,我们...

    表达式求值

    1. **逆波兰表示法**(Reverse Polish Notation, RPN):一种常用的表达式求值方法,它避免了使用括号。在RPN中,运算符位于其操作数之后,使得求值过程简化。例如,算术表达式 "2 + 3 * 4" 的RPN形式为 "2 3 4 * + ...

Global site tag (gtag.js) - Google Analytics