一道题目 就是通过输入成绩来判断等级0-100,并且判断每个等级的成绩数。程序以输入负值来终止,为什么我输入了-1程序没终止?哪里错了!!!import java.util.*;public class Grade { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub System.out.println("Please input result:"); Scanner keyboard = new Scanner(System.in);
int result = keyboard.nextInt(); int a = 0, b = 0, c = 0, d = 0, f = 0;
int n = 0;
if (result < 0) {
System.exit(0);
} else {
while (result > 0) {
if ((result < 100) && (result > 90))
a++;
else if ((result < 89) && (result < 80))
b++;
else if ((result < 79) && (result > 70))
c++;
else if ((result < 69) && (result > 60))
d++;
else
f++; }
n++;
}
System.out.println("Total number of gardes =" + n);
System.out.println("Number of A's = " + a);
System.out.println("Number of B's = " + b);
System.out.println("Number of C's = " + c);
System.out.println("Number of D's = " + d);
System.out.println("Number of F's = " + f);
}
}
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub System.out.println("Please input result:"); Scanner keyboard = new Scanner(System.in);
int result = keyboard.nextInt(); int a = 0, b = 0, c = 0, d = 0, f = 0;
int n = 0;
if (result < 0) {
System.exit(0);
} else {
while (result > 0) {
if ((result < 100) && (result > 90))
a++;
else if ((result < 89) && (result < 80))
b++;
else if ((result < 79) && (result > 70))
c++;
else if ((result < 69) && (result > 60))
d++;
else
f++; }
n++;
}
System.out.println("Total number of gardes =" + n);
System.out.println("Number of A's = " + a);
System.out.println("Number of B's = " + b);
System.out.println("Number of C's = " + c);
System.out.println("Number of D's = " + d);
System.out.println("Number of F's = " + f);
}
}
解决方案 »
- JAVA字符用的Unicode编码,为何转换成byte[]却又变成国标码GB2312?
- jframe 键盘事件
- 跪求:把GBK字符串写入到UTF-8文本文件中不为乱码的方法!
- 我用小颖反编译V1.4发编译一个jar包,但是不产生java文件,只产生一些空目录,请问怎么回事?
- 请教java在生成图片过程中的问题。
- 请教java的基本问题。
- 第一个帖子 JAVA新手 请教高手要主攻什么方向有希望
- java面试题(都进来尝试下)
- 寻找core java
- 如何执行两个“011100”和“101000”之类的0,1串的或操作?
- JTable 分页后,当进行非最后页的数据库操作时就死。
- 一个很简单的问题,有4个错误
n++应该提到while里吧?
import java.util.Scanner;public class Grade { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub System.out.println("Please input result:"); Scanner keyboard = new Scanner(System.in);
int result = keyboard.nextInt(); int a = 0, b = 0, c = 0, d = 0, f = 0;
int n = 0;
if (result < 0) {
System.exit(0);
} else {
while (result > 0) {
if ((result < 100) && (result > 90))
a++;
else if ((result < 89) && (result < 80))
b++;
else if ((result < 79) && (result > 70))
c++;
else if ((result < 69) && (result > 60))
d++;
else
f++;
n++;//*******************
result = keyboard.nextInt();//获得键盘输入的数据,进行下一轮循环 }
//n++;加到上面
}
System.out.println("Total number of gardes =" + n);
System.out.println("Number of A's = " + a);
System.out.println("Number of B's = " + b);
System.out.println("Number of C's = " + c);
System.out.println("Number of D's = " + d);
System.out.println("Number of F's = " + f);
}
}
希望楼主多用debug,这样就能知道问题处在什么地方了
后来我用布尔表达式来控制 发现还是循环里缺少result = keyboard.nextInt();
这下搞懂了!
import java.util.*;public class Grade { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub System.out.println("Please input result:"); Scanner keyboard = new Scanner(System.in);
int result = keyboard.nextInt(); int a = 0, b = 0, c = 0, d = 0, f = 0;
int n = 0;
boolean resultt = true;
while (resultt) {
if (result < 0) {
resultt = false;
} else {
while (result > 0) { if ((result < 100) && (result > 90))
a++;
else if ((result < 89) && (result > 80))
b++;
else if ((result < 79) && (result > 70))
c++;
else if ((result < 69) && (result > 60))
d++;
else
f++;
n++;
result = keyboard.nextInt(); } }
} System.out.println("Total number of gardes =" + n);
System.out.println("Number of A's = " + a);
System.out.println("Number of B's = " + b);
System.out.println("Number of C's = " + c);
System.out.println("Number of D's = " + d);
System.out.println("Number of F's = " + f);
}
}