- 根据键盘录入的数值1,2,3,…7输出对应的星期一,星期二,星期三…星期日。(用switch语句实现,代码+运行结果截图)
package com.cskaoyan.homework;
import java.util.*;
public class work01 {
public static void main(String[] args){
System.out.println("Please input a number:");
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
String str;
switch(a){
case 1:
str = "Monday";
break;
case 2:
str = "Tuesday";
break;
case 3:
str = "Wednesday";
break;
case 4:
str = "Thusday";
break;
case 5:
str = "Friday";
break;
case 6:
str = "Saturday";
break;
case 7:
str = "Sunday";
break;
default:
str = "please input a number again!";
}
System.out.println(str);
}
}
- 判断一个5位数是否是回文数(比如12321) 个位等于万位 十位等于千位 提交代码+运行结果截图
package com.cskaoyan.homework;
import java.util.*;
public class work02 {
public static void main(String[] args){
System.out.println("请输入一个5位数:");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int[] a = new int [5];
for(int i = 0;i < 5;i++){
a[i] = num % 10;
num = num / 10;
}
if(a[0] == a[4] && a[1] == a[3]){
System.out.println("你输入的5位数是回文数。");
}
else{
System.out.println("你输入的5位数不是回文数。");
}
}
}
- 利用switch语句,实现对学生分数评级的功能。
程序的输入是一个int类型的变量score,代表学生的分数取值范围[0,100]
当分数范围为 0=< score <60 输出 不及格
当分数范围为 60=< score <70 输出 及格
当分数范围为 70=< score <80 输出 中
当分数范围为 80=< score <90 输出 良
当分数范围为 90=< score <=100 输出优
提示:可合理利用case穿越 提交代码+运行结果截图哈
package com.cskaoyan.homework;
import java.util.*;
public class work03 {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int score = sc.nextInt();
score /= 10;
switch(score){
case 10:
case 9:
System.out.println("优");
break;
case 8:
System.out.println("良");
break;
case 7:
System.out.println("中");
break;
case 6:
System.out.println("及格");
break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:
System.out.println("不及格");
break;
default:
System.out.println("请重新输入合理范围的分数!");
break;
}
}
}
附加题:
- 在给定的字符数(只包含ascii码表中包含的128个字符)组中找到,第一个只出现一次的字符(假设所给字符数组中一定存在只出现一次的字符,
第一个是指从左到右的字符出现的顺序)
package com.cskaoyan.homework;
import java.util.*;
public class add01 {
public static void main(String[] args){
System.out.println("请输入一个字符串:");
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
char[] arr = str.toCharArray(); //把字符串转化成字符数组
int[] count = new int [128];
//初始化
for(int i = 0 ;i < 128;i++) //用来统计字符数量的数组初始化为0
count[i] = 0;
//计数
for(int i = 0;i < arr.length;i++){
count[arr[i]]++;
}
//查找
for(int i = 0;i < arr.length;i++){
if(count[arr[i]] == 1) {
System.out.println("第一个只出现一次的字符是" + arr[i]);
break;
}
}
}
}
- 在一个整形数组里,除了两个数字之外,其他数字都出现了2次。请写程序找到这两个只出现了一次的数字。
package com.cskaoyan.homework;
public class add02 {
public static void main(String[] args){
int a[] = {1, 2, 3, 4, 1, 2};
int tag[] = {1, 1, 1, 1, 1, 1}; //tag数组为标记数组,1表示是所要寻找的数字,tag数组所有元素初始化为1.
//双重循环比较,若两元素相等,则把它们的tag值标记为0。
for(int i = 0;i < a.length-1;i++){
for(int j = i + 1 ;j < a.length;j++){
if(a[i] == a[j]){
tag[i] = 0;
tag[j] = 0;
}
}
}
//遍历结束后,tag值为1的元素即为只出现一次的元素
for(int i = 0;i < tag.length;i++){
if(tag[i] == 1){
System.out.println(a[i]);
}
}
}
}