将操作符号分配给变量并使用该变量进行条件检查

sri*_*nkl 7 java

我可以为变量分配运算符符号并将该变量用于条件检查吗?

char operator= '>';
int val1=10;
int val2=24;
if(val2 operator val1){

    /* some code*/

}
Run Code Online (Sandbox Code Playgroud)

为什么我不能在条件内使用运算符变量?

Lea*_*ore -1

用任何编程语言编写的代码都需要转换为汇编语言。当这种情况发生时,用高级语言编写的每个代码语句都会被转换为中级等效指令/指令集,即 JAVA 代码将被转换为汇编语言中的机器特定指令。

这里在下面的语句中添加操作,

int a = a + 10;
Run Code Online (Sandbox Code Playgroud)

可能会转换为

添加1010;

当我们尝试访问变量值时,它可能会转换为 READ 指令。

因此,当您尝试在变量中使用“>”时,

char operator= '>';
int val1=10;
int val2=24;
if(val2 operator val1){

/* some code*/

}
Run Code Online (Sandbox Code Playgroud)

if 语句,

if(val2 operator val1) 
Run Code Online (Sandbox Code Playgroud)

将转换为无效指令。它将读取“运算符”变量,而不是生成用于比较两个值的等效值。

这显然会导致错误的解释。

因此,这样做是不允许的。

每个编译器(java、gcc 等)的行为可能不同,但目标是相同的。如果你多读Complier / Compilation / Execution,你就会了解更多。这些是一些链接:

http://www.coderanch.com/t/559258/java/java/java-codes-converted- assembly-JVM

编程语言编译器首先翻译为汇编代码还是直接翻译为机器代码?

AC 程序的编译步骤。

http://www.herongyang.com/Computer-History/C-Program-Compilation-and-Execution-Process.html