是的,在我来到这里之前,我确实做了研究(包括这个网站,MSDN和其他一些网站),但没有一个真正帮助我(刚刚开始编码),我仍然没有得到它。我正在尝试创建一个java程序,它接受你键入的3个整数,并将它们从最大到最小。我遇到的麻烦是,无论数量是多少,它都只显示在控制台中并摆脱其他数字。任何人都可以解释我的错误或提出任何建议吗?我很感激。
这是我的代码
import javax.swing.*;
public class sortingintegers {
public static void main(String[] args) {
// TODO Auto-generated method stub
String variable1, variable5;
int variable2, variable3, variable4;
variable1 = JOptionPane.showInputDialog(null, "Enter the first integer? ",
"Exercise3_8", JOptionPane.QUESTION_MESSAGE);
variable2 = Integer.parseInt(variable1);
variable1 = JOptionPane.showInputDialog(null, "Enter the second integer? ",
"Exercise3_8", JOptionPane.QUESTION_MESSAGE);
variable3 = Integer.parseInt(variable1);
variable1 = JOptionPane.showInputDialog(null, "Enter the third integer? ",
"Exercise3_8", JOptionPane.QUESTION_MESSAGE);
variable4 = Integer.parseInt(variable1);
//First Phase
if (variable2> variable3 && variable2> variable4) {
System.out.println(variable2);
}
else if (variable3> variable2 && variable3> variable4) {
System.out.println(variable3);
}
else if (variable4> variable2 && variable4> variable3) {
System.out.println(variable4);
}
//Second Phase
if (variable2> variable3 && variable2> variable4) {
System.out.println(variable2);
}
else if (variable3> variable2 && variable3> variable4) {
System.out.println(variable3);
}
else if (variable4> variable2 && variable4> variable3) {
System.out.println(variable4);
}
//Third Phase
if (variable2> variable3 && variable2> variable4) {
System.out.println(variable2);
}
else if (variable3> variable2 && variable3> variable4) {
System.out.println(variable3);
}
else if (variable4> variable2 && variable4> variable3) {
System.out.println(variable4);
}
}
}
答案 0 :(得分:3)
只需将数字存储为数组或列表(无论何时想要调用var1,var2,var3等,请问自己使用数组是否正确),然后对它们进行排序。
int[] nums = new int[3];
for (int i = 0; i < nums.length; i++) {
nums[i] = JOptionPane.showInputDialog(null, "Enter integer " + i,
"Exercise3_8", JOptionPane.QUESTION_MESSAGE);
}
Arrays.sort(nums);
for (int i = 0; i < nums.length; i++) {
System.out.println(nums[i]);
}
答案 1 :(得分:0)
作为初学者,我相信你还没有学过数组或排序算法。您可以找到第一个数字,但是您需要使用嵌套的if语句来查找第二个和第三个数字。
所以让我们先拿一下if语句:
if (variable2> variable3 && variable2> variable4) {
System.out.println(variable2);
//Inside here, you know that variable 2 is first. So is variable3 or variable4 second?
}
要确定哪个变量是第二个,请使用if语句将variable3与variable4进行比较。在if语句中,你知道哪个变量是第二个,然后哪个变量是第三个,因为只剩下一个变量。
在你完成变量2的第一个情况之后,处理变量3为第一个而变量4以类似方式出现的情况。
答案 2 :(得分:0)
感谢所有帮助我的人,尝试制作阵列,但我仍然需要努力。这就是我最终做的事情并且有效。
import javax.swing.JOptionPane;
public class sortingintegers {
private static char[] var1;
public static void main(String[] args) {
// TODO Auto-generated method stub
String integer1 = JOptionPane.showInputDialog("Enter the first integer:");
String integer2 = JOptionPane.showInputDialog("Enter the second integer:");
String integer3 = JOptionPane.showInputDialog("Enter the third integer:");
int num1 = Integer.parseInt(integer1);
int num2 = Integer.parseInt(integer2);
int num3 = Integer.parseInt(integer3);
if (num1 >= num2 && num1 >= num3 && num2 >= num3){
String var1 =(" The sorted numbers are "+ num3+ " "+ num2+ " " +num1);
JOptionPane.showConfirmDialog(null, var1);
System.out.print(var1);
}
if (num1 >= num3 && num3 >= num2 && num1 >= num2){
String var2 =(" The sorted numbers are "+ num2+ " "+ num3+ " " +num1);
JOptionPane.showConfirmDialog(null, var2);
System.out.print(var2);
}
if (num2 >= num3 && num2 >= num1 && num3 >= num1){
String var3 =(" The sorted numbers are "+ num1+ " "+ num3+ " " +num2);
JOptionPane.showConfirmDialog(null, var3);
System.out.print(var3);
}
if (num2 >= num1 && num2>= num3 && num1 >= num3){
String var4 =(" The sorted numbers are "+ num3+ " "+ num1+ " " +num2);
JOptionPane.showConfirmDialog(null, var4);
System.out.print(var4);
}
if (num3 >= num1 && num3 >= num2 && num1 >= num2){
String var5 =(" The sorted numbers are "+ num2+ " "+ num1+ " " +num3);
JOptionPane.showConfirmDialog(null, var5);
System.out.println(var5);
}
if (num3 >= num2 && num3 >= num1 && num2 >= num1){
String var6 =(" The sorted numbers are "+ num1+ " "+ num2+ " " +num3);
JOptionPane.showMessageDialog(null, var6);
System.out.print(var6);
}
}
}