Java 我的输入总是被忽略

Java 我的输入总是被忽略,java,arrays,input,java.util.scanner,line,Java,Arrays,Input,Java.util.scanner,Line,所以,我想弄明白为什么我的程序不能正常工作。我想将内容保存在数组中,但第一个输入总是被忽略。例如,我问用户“您想输入更多xy吗?”然后回答“是”,我问有多少用户输入2,最后添加的一个被忽略,第一个显示。如果它是唯一一个,它甚至没有显示 这是我的密码 import java.util.*; public class TriangleType { public static void main(String[] args) { // TODO Auto-generated

所以,我想弄明白为什么我的程序不能正常工作。我想将内容保存在数组中,但第一个输入总是被忽略。例如,我问用户“您想输入更多xy吗?”然后回答“是”,我问有多少用户输入2,最后添加的一个被忽略,第一个显示。如果它是唯一一个,它甚至没有显示

这是我的密码

import java.util.*;
public class TriangleType {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int a , b ,c ,result , total,count;
        int x=9;
        String triangle = null;

     String[] output=new String[110];
        //storing types of traingles and their count for the statics display
        String[][] triangleTypes={{"gleichseitig","0"} ,{"gleichschenklig","0"},{"spitzwinklig","0"},{"rechtwinklig","0"},{"stumpwinkling","0"}};
        //2D array to store the sides of a traingle
        int[][] sides=new int[110][3];
        sides[0][0]=2;   sides[0][1]=2;      sides[0][2]=4;
        sides[1][0]=3;   sides[1][1]=4;      sides[1][2]=5;
        sides[2][0]=5;   sides[2][1]=5;      sides[2][2]=5;
        sides[3][0]=8;   sides[3][1]=6;      sides[3][2]=10;
        sides[4][0]=10;  sides[4][1]=10;     sides[4][2]=2;
        sides[5][0]=2;   sides[5][1]=4;      sides[5][2]=9;
        sides[6][0]=12;  sides[6][1]=36;     sides[6][2]=4;
        sides[7][0]=5;   sides[7][1]=6;      sides[7][2]=7;
        sides[8][0]=7;   sides[8][1]=9;      sides[8][2]=12;

        //User input
        System.out.println("Moechten Sie mehr Dreiecke hinzufuegen? (1/Ja/; 0/Nein/)");
        Scanner input = new Scanner(System.in);
        String s = input.nextLine();
        int equivalent=Integer.parseInt(s);
        if(equivalent==1){
            System.out.println("Wie viele Dreiecke moechten Sie hinzufuegen?");
            Scanner inputt = new Scanner(System.in);
            String ss = input.nextLine();
            total=Integer.parseInt(ss);
            for (int i=0; i<total; i++){
            System.out.println("Seite a von Dreieck   "+(8+i+1)+" eingeben:");
            Scanner input1 = new Scanner(System.in);
            String s1 = input1.nextLine();
            System.out.println("Seite b von Dreieck   "+(8+i+1)+" eingeben:");          Scanner input2 = new Scanner(System.in);
            String s2 = input2.nextLine();
            System.out.println("Seite c von Dreieck   "+(8+i+1)+" eingeben:");          Scanner input3 = new Scanner(System.in);
            String s3 = input3.nextLine();
            a=Integer.parseInt(s1);
            b=Integer.parseInt(s2);
            c=Integer.parseInt(s3);
             x=9+i;
            sides[9+i][0]=a;
            sides[9+i][1]=b;
            sides[9+i][2]=c;

        }}   

        for(int j=0; j<x; j++){
             triangle=evaluateTriangle(sides[j][0], sides[j][1], sides[j][2]);
             output[j]=triangle;

            System.out.println(sides[j][0]+" "+sides[j][1]+" "+sides[j][2] + " "+triangle);

        }
        for(int k=0; k<output.length; k++)
        {
            //check if returned triangle matches with one of defined types in triangleType array  
            for(int l=0; l<triangleTypes.length; l++ ){
                if(output[k]==triangleTypes[l][0])
                {  //if yes then update second member indicating no of occurences of that particular traingle
                 count=(Integer.parseInt(triangleTypes[l][1]));
                 count=count+1;
                 triangleTypes[l][1]=Integer.toString(count);
                }
            }


        }

        //show statistics
        System.out.println("======STATISTIK=======");
        System.out.println("Dreieckstyp  Anzahl");
        for(int m=0; m<triangleTypes.length; m++)
        {
        System.out.println(triangleTypes[m][0]+"  "+triangleTypes[m][1]);   
        }





    }
    //function to evaluate the type of triangle
    public static String evaluateTriangle(int side1 , int side2 , int side3){
        int a,b,c;
        a=side1;
        b=side2;
        c=side3;
        if(a <= 0 || b <= 0 || c <= 0)
        {return "kein gültiges Dreieck";}
        else if(a == b && b == c)
        {return "gleichseitiges Dreieck";}
        else if((a*a)+(b*b)==(c*c))
        {return "rechtwinkliges Dreieck";}
        else if((a*a)+(b*b)>(c*c))
        { return "spitzwinkliges Dreieck";}
        else if((a*a)+(b*b)<(c*c))
        { return "stumpwinklinges Dreieck";}
        else if (a == b || b == c || c == a)
        {return "gleichschenkliges Dreieck";}
        else return "undefiniert";


    }

}
import java.util.*;
公共类三角形类型{
公共静态void main(字符串[]args){
//TODO自动生成的方法存根
整数a、b、c、结果、总数、计数;
int x=9;
字符串三角形=空;
字符串[]输出=新字符串[110];
//存储静态显示的Traingle类型及其计数
字符串[][]三角形类型={{“gleichseitig”,“0”},{“gleichschenklig”,“0”},{“spitzwinklig”,“0”},{“rechtwinklig”,“0”},{“Stumbinkling”,“0”};
//二维阵列,用于存储traingle的边
int[][]边=新int[110][3];
边[0][0]=2;边[0][1]=2;边[0][2]=4;
边[1][0]=3;边[1][1]=4;边[1][2]=5;
边[2][0]=5;边[2][1]=5;边[2][2]=5;
边[3][0]=8;边[3][1]=6;边[3][2]=10;
边[4][0]=10;边[4][1]=10;边[4][2]=2;
边[5][0]=2;边[5][1]=4;边[5][2]=9;
边[6][0]=12;边[6][1]=36;边[6][2]=4;
边[7][0]=5;边[7][1]=6;边[7][2]=7;
边[8][0]=7;边[8][1]=9;边[8][2]=12;
//用户输入
System.out.println(“Moechten Sie mehr dreicke hinzufuegen?(1/Ja/;0/Nein/)”;
扫描仪输入=新扫描仪(System.in);
字符串s=input.nextLine();
int等效=整数.parseInt(s);
如果(等效==1){
System.out.println(“您的手机号码是多少?”);
扫描仪输入=新扫描仪(系统输入);
字符串ss=input.nextLine();
总计=整数.parseInt(ss);
对于(int i=0;i
最后一个input.nextLine()不应该是input.nextLine()吗


如果删除理解问题所需的所有行,则调试会更容易。

代码中用于打印结果的for循环不够高,请更改for循环,使其更改行:

        for(int j=0; j<x; j++)

其中包含未显示的数据

你能将德语句子翻译成英语吗?每个人都很绝望。每个人都希望自己的问题成为例外。如果你这样做,你会得到更多帮助。@AlexMontoro评论?关于它,你的for循环可能不会一直计算在内:for(int j=0;jFYI:不要在
系统中创建多个
扫描器
对象。在
中。只创建一个,然后继续使用它。这看起来可能是一个错误,也许使用更多信息性的名称可以帮助您解决这些问题-输入和输入之间没有逻辑上的区别-但是添加更多提示和numberOfNewCoordsPrompt会使这更清楚地说明了错误是什么。尝试完全删除它,但没有做到。实际上它什么都没有做。所以它必须是其他东西:/
for(int j=0; j<=x; j++){
             triangle=evaluateTriangle(sides[j][0], sides[j][1], sides[j][2]);
             output[j]=triangle;

            System.out.println(sides[j][0]+" "+sides[j][1]+" "+sides[j][2] + " "+triangle);

        }
        for(int j=0; j<x; j++)
        for(int j=0; j<=x; j++)
        sides[10][0]
        sides[10][1]
        sides[10][2]