我一直试图弄清楚这个问题的答案有什么问题。真的需要帮助!任何帮助表示赞赏!感谢
问题
a<b
,程序将从数字a打印到数字b。a>b
,程序将从b打印到a。如果b is the same as a
,程序会要求用户输入另一个数字b,直到它不等于a。
Scanner sc = new Scanner(System.in);
System.out.println("Enter a: ");
int a = sc.nextInt();
System.out.println("Enter b: ");
int b = sc.nextInt();
if(a > b) {
for(int i = b; b >= a; b--) {
System.out.println(b);
}
} else if (a < b) {
for(int i = a; a <= b; a++) {
System.out.println(i);
}
} else {
System.out.println("Enter another number b: ");
int numberb = sc.nextInt();
}
}
答案 0 :(得分:5)
我对你当前的尝试进行了一些修正,这与我们的功能相差不远。首先,我使用循环来提示用户输入b
号码,直到a
不等于b
。如果手中有a
和b
,我会做一个循环来打印从最小到最大的数字范围,包括两端。
Scanner sc = new Scanner(System.in);
System.out.println("Enter a: ");
int a = sc.nextInt();
int b;
do {
System.out.println("Enter b: ");
b = sc.nextInt();
} while (b == a);
for (int i=Math.min(a, b); i <= Math.max(a,b); ++i) {
System.out.println(i);
}
答案 1 :(得分:1)
要允许用户输入b
,直到与a
不同,您可以使用do while loop
Scanner sc = new Scanner(System.in);
System.out.println("Enter a: ");
int a = sc.nextInt();
int b = 0;
do {
System.out.println("Enter b: ");
b = sc.nextInt();
} while (a == b);
然后打印你可以简单地做:
for (int i=Math.min(a, b); i <= Math.max(a,b); ++i) {
System.out.println(i);
}
或更正您的代码:
if (a > b) {
for (int i = b; i <= a; i++) { // i is the index to change
System.out.println(i); // use i
}
} else if (a < b) {
for (int i = a; i <= b; i++) { // i is the index to change
System.out.println(i); // use i
}
}
答案 2 :(得分:0)
你的for循环迭代是错误的。对于你的第三个条件,我做了一些改变。更改您的代码:
public class test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
test t = new test();
System.out.println("Enter a: ");
int a = sc.nextInt();
System.out.println("Enter b: ");
int b = sc.nextInt();
if(a==b) {
do {
System.out.println("Both are same enter again");
b = sc.nextInt();
}while(a==b);
t.loop(a, b);
}else {
t.loop(a,b);
}
}
void loop(int a, int b) {
if(a > b) {
for(int i = b; i <= a; i++) {
System.out.println(i);
}
} else if (a < b) {
for(int i = a; i <= b; i++) {
System.out.println(i);
}
}
}
}