我可以为变量分配运算符符号并将该变量用于条件检查吗?
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
| 归档时间: |
|
| 查看次数: |
3692 次 |
| 最近记录: |