我正在尝试构建一个这样的程序: 用户输入3个数字。 系统打印出从用户输入的最低值到最高值的数字的递增序列。 例如:如果用户输入1然后是4然后是8,则应打印出1,2,3,5,6,7,8省略4,因为它是具有中间值的数字。 如何让程序省略这个数字?
System.out.print("Enter a number: ");
int n1 = Integer.parseInt(in.readLine());
System.out.print("Enter a number: ");
int n2 = Integer.parseInt(in.readLine());
System.out.print("Enter a number: ");
int n3 = Integer.parseInt(in.readLine());
int i = 0;
if ((n1 > n2) && (n2 > n3)) {
for (i = n3; (i <= n1); i++) {
String o = i + ",";
System.out.print(o);
}
}
else if ((n1 > n3) && (n3 > n2)) {
for (i = n2; (i <= n1); i++) {
String o = i + ",";
System.out.print(o);
}
}
else if ((n2 > n3) && (n3 > n1)) {
for (i = n1; (i <= n2); i++) {
String o = i + ",";
System.out.print(o);
}
}
else if ((n2 > n1) && (n1 > n3)) {
for (i = n3; (i <= n2); i++) {
String o = i + ",";
System.out.print(o);
}
}
else if ((n3 > n2) && (n2 > n1)) {
for (i = n1; (i <= n3); i++) {
String o = i + ",";
System.out.print(o);
}
}
else if ((n3 > n1) && (n1 > n2)) {
for (i = n2; (i <= n3); i++) {
String o = i + ",";
System.out.print(o);
}
}
System.out.println("\n" + "The sum of the sequence is " + i);
答案 0 :(得分:3)
你太过复杂了。
让用户输入3个数字并以三个变量a
,b
和c
阅读。然后只需使用for循环从a
迭代到c
,如果值等于b
,则不要打印。
System.out.print("Enter a number: ");
int a = Integer.parseInt(in.readLine());
System.out.print("Enter a number: ");
int b = Integer.parseInt(in.readLine());
System.out.print("Enter a number: ");
int c = Integer.parseInt(in.readLine());
for(int i = a; i < c; i++)
{
if(i != b)
System.out.println(i);
}
迭代让你的生活变得轻松。
答案 1 :(得分:0)
如果您要查找哪些数字最高的中间和最低。然后将数字显示为列出中间数字的列表。您没有在 if 语句中嵌入 for 语句
这是因为for语句实际上不需要天气n1,n2或只有最高和最低和中间数字。如果你创建了中间变量,可以事先分配给它们,而不是像你一样在ifs中使用nest for语句。
事实上,您可以一起删除if语句并使用 Math.max(a,b)(如果您使用的是java),并在找到最高,中等和最高级别之前使用中间变量最低的数字。
你可能想尝试这样的事情: System.out.print("Enter a number: ");
int n1 = Integer.parseInt(in.readLine());
System.out.print("Enter a number: ");
int n2 = Integer.parseInt(in.readLine());
System.out.print("Enter a number: ");
int n3 = Integer.parseInt(in.readLine());
int higher1 = Math.max(n1, n2);
int lower1 = Math.min(n1, n2);
int lowest = Math.min(lower1, n3);
int highest = Math.max(higher1, n3);
int middle;
if (n3 < lower1 ) {
middle = lower1;
} else if (n3 > higher1) {
middle = higher1;
} else {
middle = n3;
}
System.out.println("The highest is: " + highest);
System.out.println("The middle is: " + middle);
System.out.println("The lowest is: " + lowest);
for ( int count = lowest; count <= highest; count++){
if (count != middle) {
System.out.println(count);
}
}