java--自動拆箱與自動裝箱聯絡
阿新 • • 發佈:2021-02-01
技術標籤:java
import java.util.Scanner;
import java.util.Vector;
public class ScoreTest {
public static void main(String[] args) {
//1.例項化Scanner,用於從鍵盤獲取學生成績
Scanner scanner=new Scanner(System.in);
//2.建立Vector物件,Vector v=new Vector()
Vector v=new Vector();
int max=0;
//3.通過for(;;)while(true)方式,給Vertor中新增陣列,當輸入資料在負數時跳出迴圈
while(true){
Integer integer=scanner.nextInt();
if(integer<=0){
break;
}
v.addElement(integer);
if(max<integer){
max=integer;
}
}
//4.獲取成績的最大值
System.out.println("max= "+max);
//5.遍歷Vector,得到每個學生的成績,並與最大值比較,輸出學生等級
for(int i=0;i<v.size();i++){
if(max-(Integer)v.get(i)<10){
System.out.println("成績為 "+(Integer)v.get(i)+"等級為 A");
}else if(max-(Integer)v.get(i)<20){
System.out.println("成績為 "+(Integer)v.get(i)+"等級為 B");
}else if(max-(Integer)v.get(i)<30){
System.out.println("成績為 "+(Integer)v.get(i)+"等級為 C");
}else {
System.out.println("成績為 "+(Integer)v.get(i)+"等級為 D");
}
}
}
}
優化後的程式碼
/**
* 自動裝箱,自動拆箱,優化後的程式碼
*/
public class NewScoreTest {
public static void main(String[] args) {
//1.例項化Scanner,用於從鍵盤獲取學生成績
Scanner scanner=new Scanner(System.in);
int maxScore=0;//記錄最大成績
Vector v=new Vector();
while(true){
//從鍵盤輸入學生的成績
System.out.println("請輸入學生的成績,以負數結束");
int score=scanner.nextInt();
if(score<0){
break;
}
if(score>100){
System.out.println("輸入的成績不合法,請重寫輸入");
continue;
}
v.addElement(score);//自動裝箱
if(maxScore<score){
maxScore=score;
}
}
char level;//記錄level
for(int i=0;i<v.size();i++){
Object obj=v.elementAt(i);
int score=(Integer)obj;//自動拆箱
//計算學生的等級
if(maxScore-score<=10){
level='A';
}else if(maxScore-score<=20){
level='B';
}else if(maxScore-score<=30){
level='C';
}else {
level='D';
}
System.out.println("student -"+i+" score is "+score+",level is "+level);
}
}
}