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