水仙花数为啥不能直接输出

package zuoye_3_11;

public class Shuixianhua {
public static void main(String[] args) {
for (int i = 100; i <1000 ; i++) {
int firstNum = i/100;
int secondNum = i/10%10;
int thirdNum = i%10;
firstNumfirstNumfirstNum + secondNumsecondNumsecondNum+thirdNumthirdNumthirdNum = i;
System.out.println("水仙花数为:" + i);

    }
}

}

代码不完整吧,

if(i == (firstNum *firstNum *firstNum  + secondNum *secondNum *secondNum +thirdNum *thirdNum *thirdNum )){
  System.out.println("水仙花数为:" + i);
}

firstNumfirstNumfirstNum + secondNumsecondNumsecondNum+thirdNumthirdNumthirdNum = i;
这句代码是啥?
不能直接输出又是什么意思呢

首先你肯定疑惑你的代码为何不对,抛开你的书写错误不说,就说一下你这个式子, 赋值一般是 int a=5;那么就是赋值,但是你要是 x+y=5;这样显然是不对的 这个是数学中的等式 不是java语言中的赋值,你可能会想:颠倒过来不可以吗?很明显不可以,因为你不能将一个表达式的值赋给一个常量,就比如说 5=6 将6赋值给5.。。。。。。

为何使用if就可以了呢,因为if的()里面是条件判断,只要两边相等就是真,不存在赋值的一说,明白了吗?

正确代码如下:

public class Shuixianhua {
public static void main(String[] args) {
for (int i = 100; i <1000 ; i++) {
int firstNum = i/100;
int secondNum = i/10%10;
int thirdNum = i%10;
if(firstNum*firstNum*firstNum + secondNum*secondNum*secondNum + thirdNum*thirdNum*thirdNum==i){
System.out.println("水仙花数为:" + i);
                                                                                              }
    }
}
}