没有此类元素例外: import java.io.*; 导入java.util.Scanner; 公共级沥青路面{ 公共静态void main(字符串[]args){ int i,t; int[]num=新的int[3]; 对于(i=1;i

没有此类元素例外: import java.io.*; 导入java.util.Scanner; 公共级沥青路面{ 公共静态void main(字符串[]args){ int i,t; int[]num=新的int[3]; 对于(i=1;i,java,exception,Java,Exception,你有: import java.io.*; import java.util.Scanner; public class AsphaltingRoads { public static void main(String[] args) { int i, t; int[] num = new int[3]; for (i = 1; i <= 3; i++) { Scanner in = new Scanner(

你有:

import java.io.*;
import java.util.Scanner;

public class AsphaltingRoads {
    public static void main(String[] args) {
        int i, t;
        int[] num = new int[3];
        for (i = 1; i <= 3; i++) {
            Scanner in = new Scanner(System.in);
            int n = in.nextInt();
            num[i] = n;
        }
        for (i = 1; i <= 3; i++) {
            if (num[i] > num[i + 1]) {
                t = num[i];
                num[i] = num[i + 1];
                num[i + 1] = t;
            }
        }
        int dis = (num[2] - num[1]) + (num[3] - num[2]);
        System.out.print(dis);
    }
}
因此,数组中有3个元素(索引0、1、2)

无法获取num[3]元素


您还应该重写for循环。

正确格式化您的代码,我们看不到任何东西您的问题是什么?删除i@Shruti
NoTouchElementException中的相等项
只能由.nextInt()中的
引发
,以后请附加stacktrace并说明引发异常的位置。您将向此程序传递什么输入?从文档中可以看出,此异常是“如果输入已用尽”引发的。此问题将导致
IndexOutOfBoundsException
,而不是
NoTouchElementException
。解决此问题的方法是
int []num=new int[3];