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

执行结果: 天气不错!

经验分享 程序员 微信小程序 职场和发展