java學習筆記(5-基礎語法練習題)
阿新 • • 發佈:2019-01-03
1.鍵盤錄入月份,輸出對應的季節:
基礎版本
package daigua4; import java.util.Scanner; /* * 根據輸入的月份,輸出對應的季節 * */ public class MonthToSeason { public static void main(String[] args) { // 建立Scanner例項 Scanner sc = new Scanner(System.in); System.out.print("請輸入一個月份:"); int month = sc.nextInt(); // switch case 進行條件判斷 switch (month) { case 1: System.out.println("春天!"); break; case 2: System.out.println("春天!"); break; case 3: System.out.println("春天!"); break; case 4: System.out.println("夏天!"); break; case 5: System.out.println("夏天!"); break; case 6: System.out.println("夏天!"); break; case 7: System.out.println("秋天!"); break; case 8: System.out.println("秋天!"); break; case 9: System.out.println("秋天!"); break; case 10: System.out.println("冬天!"); break; case 11: System.out.println("冬天!"); break; case 12: System.out.println("冬天!"); break; default: System.out.println("輸入月份錯誤!"); break; } sc.close(); } }
改進版本:
switch的穿透現象
package daigua4; import java.util.Scanner; public class MonthToSeason2 { public static void main(String[] args) { // 建立Scanner例項 Scanner sc = new Scanner(System.in); System.out.print("請輸入一個月份:"); int month = sc.nextInt(); // switch case 進行條件判斷 switch (month) { case 1: case 2: case 3: System.out.println("春天!"); break; case 4: case 5: case 6: System.out.println("夏天!"); break; case 7: case 8: case 9: System.out.println("秋天!"); break; case 10: case 11: case 12: System.out.println("冬天!"); break; default: System.out.println("輸入月份錯誤!"); break; } sc.close(); } }
2.列印5位數中所有的迴文數
package daigua4; /* * 列印5位數中所有的迴文數字 * */ public class HuiWen { public static void main(String[] args) { for (int i = 10000; i < 100000; i++) { int gewei = i%10; int shiwei = i/10%10; int qianwei = i/1000%10; int wanwei = i/10000%10; if (gewei == wanwei & shiwei == qianwei) { System.out.println(i); } } } }
3.求陣列中指定條件數字的和
package daigua4;
/*
* 需求:
* (1)定義一個int型別的一維陣列,內容為{171,72,19,16,118,51,210,7,18}
* (2)求出該陣列中滿足要求的元素和。
* 要求:求和的元素的個位和十位不能包含7,並且只能為偶數。
*
* 分析:
* A:定義一個int型別的一維陣列
* B:定義一個求和變數
* C:遍歷陣列,獲取到陣列中的每一個元素
* D:判斷該元素是否滿足如下要求,如果是就累加,否則,不搭理它
* x%2==0
* x%10 != 7
* x/10%10 !=7
* E:輸出結果
*/
public class Test1 {
public static void main(String[] args) {
int[] arr = {171,72,19,16,118,51,210,7,18};
int sum = 0;
for (int i = 0; i < arr.length; i++) {
int cur_num = arr[i];
if (cur_num > 10 & cur_num%10 != 7 & cur_num/10%10 != 7 & cur_num%2 == 0) {
System.out.println(cur_num);
sum += cur_num;
} else if(cur_num < 10 & cur_num%10 != 7 & cur_num%2 == 0){
System.out.println(cur_num);
sum += cur_num;
}
}
System.out.println(sum);
}
}
4.算平均分
package daigua4;
import java.util.Scanner;
/*
* 需求:在程式設計競賽中,有6個評委為參賽的選手打分,分數為0-100的整數分。
* 選手的最後得分為:去掉一個最高分和一個最低分後 其餘4個選手的平均值。
* 請寫程式碼實現。(不考慮小數部分)
*
* 分析:
* A:定義一個長度為6的陣列。
* B:通過鍵盤錄入的方式給出評委的分數
* C:寫方法實現獲取陣列中的最大值,最小值
* D:寫方法實現陣列元素的求和
* E:平均分: (和-最高分-最低分)/(arr.length-2)
* F:輸出分數即可
*/
public class Test2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int arr[] = new int[6];
// 迴圈輸入評委的分數
for (int i = 1; i <= 6; i++) {
System.out.println("親輸入" + i + "第位評委的分數:");
arr[i-1] = sc.nextInt();
}
int max_num = max(arr);
int min_num = min(arr);
int sum_num = sum(arr);
int average_num = (sum_num-max_num-min_num)/(arr.length-2);
System.out.println("average_num:"+average_num);
sc.close();
}
public static int max(int[] args) {
int temp = args[0];
for (int i = 0; i < args.length - 1; i++) {
temp = (temp>args[i+1])?temp:args[i+1];
}
return temp;
}
public static int min(int[] args) {
int temp = args[0];
for (int i = 0; i < args.length - 1; i++) {
temp = (temp<args[i+1])?temp:args[i+1];
}
return temp;
}
public static int sum(int[] args) {
int sum = 0;
for (int i = 0; i < args.length - 1; i++) {
sum += args[i];
}
return sum;
}
}