public class Demo1 {
public static void main(String[] args) {
int[] arr = {10, 20, 30, 40};
int max = arr[0];
System.out.println();
for (int i = 0; i < arr.length; i++) {
arr[i] > max ? max=arr[i] : max= max;
}
}
}
报错原因是啥意思:
用错了哈
max = arr[i] > max ?arr[i] : max;
改成
max = arr[i] > max ? arr[i] : max;
你这个写法在C语言里是成立的,但是java中是错误的语法
在C语言里,你写if(a=10)也不报错,C语言中赋值表达式也被当做普通表达式处理
而java中,if里就只能返回一个bool类型,不可以写赋值表达式
同理,三元运算符里也不可以写赋值表达式
你要把赋值放到外面来,而三元运算符里的每一项只返回值
max = arr[i] > max ?arr[i] : max;
但是max=max是一句废话,所以这里完全没必要用三元运算符,改为
if(arr[i] > max)max=arr[i];
即可
你的三元运算写错了,应该这样写:max = arr[i] > max ? arr[i] : max;
我真是第一次见人这样写,但是评论区说是c语言的写法,难怪