Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果数组中的每个元素都相等,则打印一个元素;如果所有元素都不相等,则打印最大的元素;不相等_Java_If Statement_Arraylist - Fatal编程技术网

Java 如果数组中的每个元素都相等,则打印一个元素;如果所有元素都不相等,则打印最大的元素;不相等

Java 如果数组中的每个元素都相等,则打印一个元素;如果所有元素都不相等,则打印最大的元素;不相等,java,if-statement,arraylist,Java,If Statement,Arraylist,我编写了一个代码,如果用户给出数字,则输出序列的最大值。如果用户仅输入相等的值,则相同的输出将重复用户给定的输入次数 这里的问题是,尽管我编写了一个if条件来避免重复相同的输出,但它不起作用。我真的很感激你的帮助 问题: int y = 0; for(int i : a){ int v = 0; if(i == a.get(0)){ y = y + 1; }

我编写了一个代码,如果用户给出数字,则输出序列的最大值。如果用户仅输入相等的值,则相同的输出将重复用户给定的输入次数

这里的问题是,尽管我编写了一个if条件来避免重复相同的输出,但它不起作用。我真的很感激你的帮助

问题:

int y = 0;
        for(int i : a){
            int v = 0;
            if(i == a.get(0)){
                y = y + 1;
            }
            for(int o : a){
                if(i >= o){
                    v = v + 1;
                }
            }
            if(y == a.size()){
                System.out.println("Largest_num = "+a.get(0));
            }
            else if((v == a.size())&&(y != a.size())){
                System.out.println("Largest_num = "+i);
            }
全部代码:

import java.util.Scanner;
import java.util.ArrayList;
class Noice{
    public static void main(String args[]){
        Scanner obj = new Scanner(System.in);
        System.out.println();
        ArrayList<Integer>a = new ArrayList<Integer>();
        System.out.print("Enter length: ");
        int d = obj.nextInt();
        System.out.println();
        for(int i = 0; i < d; i++){
            int c = i + 1;
            System.out.print("Num"+c+" = ");
            int b = obj.nextInt();
            a.add(b);
        }
        int y = 0;
        for(int i : a){
            int v = 0;
            if(i == a.get(0)){
                y = y + 1;
            }
            for(int o : a){
                if(i >= o){
                    v = v + 1;
                }
            }
            if(y == a.size()){
                System.out.println("Largest_num = "+a.get(0));
            }
            else if((v == a.size())&&(y != a.size())){
                System.out.println("Largest_num = "+i);
            }
        }

    }
}
import java.util.Scanner;
导入java.util.ArrayList;
噪音等级{
公共静态void main(字符串参数[]){
扫描器obj=新扫描器(System.in);
System.out.println();
ArrayList=新的ArrayList();
系统输出打印(“输入长度:”);
int d=obj.nextInt();
System.out.println();
对于(int i=0;i=o){
v=v+1;
}
}
如果(y==a.size()){
System.out.println(“maximust_num=“+a.get(0));
}
如果((v==a.size())和&(y!=a.size())){
System.out.println(“最大数量=+i”);
}
}
}
}

我很难理解每个变量在做什么,最好使用变量名来解释它的用途

据我所知,
y
跟踪有多少值等于数组中的第一个值。然后,第一个if条件检查相同值(
y
)的数量是否与数组的大小相同。如果是这样的话,那么您就不需要
else If
,只要
else
就足够了,如果我正确理解了问题的话

我还很难理解for(into:a)和variable
v
的循环在做什么。同样,由于变量名没有描述它们的功能,所以很难理解,但似乎可以放弃嵌套循环,只跟踪正在运行的最大变量。在(int i:a)的
之前,可以添加类似
int max=a.get(0)的内容。然后,在
for
循环中,如果遇到大于
max
的数字,则使用该值更新
max
。不过,这样做根本不需要任何条件,您只需在程序结束时输出
max