[英]Java keeping highest number
int number = 0;
int score = 0;
while (true) {
Scanner input=new Scanner(System.in);
System.out.println("Please enter mark :");
number = input.nextInt();
Scanner mark=new Scanner(System.in);
score = mark.nextInt();
if (number > score ) {
System.out.println("Highest mark:" + number);
}
else if (number > 100) {
System.out.println("Invalid enter number 0-100");
}
else if
(number < 0){
System.out.println("Invalid enter number 0-100");
if(input.equals("quit")){
break;
您好,我想知道學生輸入數字后如何保持最高分和最低分。 並且只允許輸入 0-100 之間的數字。 謝謝
您將需要兩個變量來跟蹤最高和最低分數。 由於您希望分數介於 0 和 100 之間,您可以分別給出兩個變量 -1 和 101 的起始值:
int max = -1;
int min = 101;
-1
不是一個可到達的值,它低於所有可到達的值,因此給定范圍內的任何值都大於它,這使得它非常適合作為max
變量的起始值。 如果它從 101 開始,則范圍內沒有更大的值,因此變量不會改變。 例如,如果變量為 50,則 0-50 范圍內的值不會大於 50,它們將被遺漏。 可以執行相同的邏輯來了解為什么我為min
變量選擇值101
。
現在您可以輸入標記並跟蹤最高和最低的標記:
Scanner sc = new Scanner(system.in);
while (true) {
int mark = sc.nextInt();
if (mark > max) {
max = mark;
}
if (mark < min) {
min = mark;
}
}
現在最高和最低標記將分別保存在max
和min
變量中。
要實現退出邏輯,您可以讓用戶輸入一個超出范圍的值,這將從循環中退出:
if (mark < 0 || mark > 100) {
break;
}
這個 if 語句必須放在檢查最高和最低標記之前,因為您不需要保留這些值的 trak。
這是最終的代碼:
int max = -1;
int min = 101;
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("Enter a value between 0 and 100. If the number is outside this range, the entering will stop.");
int mark = sc.nextInt();
//Exit logic
if (mark < 0 || mark > 100) {
//Closing the Scanner object (Not necessary but recommended)
sc.close();
break;
}
//Comapring
if (mark > max) {
max = mark;
}
if (mark < min) {
min = mark;
}
}
要更新分數,您只需要更新您的分數。
if (number > score ) {
score = number; //update your score
System.out.println("Highest mark:" + number);
}
你應該能夠自己解決這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.