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项目控制台中文乱码
