Java选择语句中赋值语句
前言
最近在找实习,所以一直在刷题,强化记忆。所以这段时间可能有些博客写的都是题解或者易错点什么的,目的仅仅做一些学习记录,方便自己同时警惕别人。
问题描述
C/C++
关于Java选择语句中的赋值语句问题,在C/C++语言中,选择语句中的赋值语句赋值后,就会与0比较,只要是非0,就返回true,否则就返回false。 C代码:
#include <iostream> using namespace std; int main() { int x = 3; int y = 4; if (x = y) //正数情况 cout << "天气不错!" << endl; else cout << "天气很热!" << endl; x = -3; y = -4; if (x = y) //负数情况 cout << "天气不错!" << endl; else cout << "天气很热!" << endl; }
执行结果:
Java
Java跟C的区别,C中赋值后会与0进行比较,如果非0,就认为是true;而Java不会与0比较,而是直接把赋值后的结果放入括号。 我们知道if()括号中最终要返回的boolean类型,如果还是上例子中是int型,编译器就会报错!
package com.learn.pra06; public class Demo01 { public static void main(String[] args) { int x=3; int y=4; if(x=y) System.out.println("天气不错!"); else System.out.println("天气真热!"); } }
编译异常: 意思就是不能把整型数据 转换为 布尔类型! 上题若是这样则可以顺利执行:
package com.learn.pra06; public class Demo01 { public static void main(String[] args) { boolean x=false; boolean y=true; if(x=y) System.out.println("天气不错!"); else System.out.println("天气真热!"); } }
执行结果: 天气不错!
上一篇:
IDEA上Java项目控制台中文乱码