Java选择语句中赋值语句

来源:互联网 发布:中世纪2 拜占庭 优化9 编辑:程序博客网 时间:2024/05/29 07:31

前言

最近在找实习,所以一直在刷题,强化记忆。所以这段时间可能有些博客写的都是题解或者易错点什么的,目的仅仅做一些学习记录,方便自己同时警惕别人。

问题描述

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("天气真热!");    }}

执行结果:
天气不错!

原创粉丝点击