初学者数组和switch语句练习,对数组和switch不熟悉的可以多练练
目录
1、【数组的操作】
题目:
现在有一个数组{2,3,5,6,7,0,7,5,4,3,0,0,0,0},要求:
将上面数组中的0去掉,将不为0的项存入一个新的数组当中,
- 编写程序循环遍历输出新的数组。
- 将数组从小到大进行排序,并遍历输出
- 遍历循环将数组中是7的数字改成数字8,遍历输出数组,要求使用增强for循环进行遍历
- 查询数组,把数组元素的值是3的下标,并输出相应的下标
package studentproject;
import java.util.Arrays;
/**
* 现在有一个数组{2,3,5,6,7,0,7,5,4,3,0,0,0,0},要求:
将上面数组中的0去掉,将不为0的项存入一个新的数组当中,
1、编写程序循环遍历输出新的数组。
2、将数组从小到大进行排序,并遍历输出
3、遍历循环将数组中是7的数字改成数字8,遍历输出数组,要求使用增强for循环进行遍历
4、查询数组,把数组元素的值是3的下标,并输出相应的下标
* @author weijiangzhu
*
*/
public class ArrayText {
public static void main(String[] args) {
int[] arr = new int[] {2,3,5,6,7,0,7,5,4,3,0,0,0,0};
//创建对象
ArrayText at = new ArrayText();
// 1、编写程序循环遍历输出新的数组。
//1.1统计非0的数有多少个
int num = at.staticsNum(arr);
//1.2创建新的数组把非0数组元素存储在新的数组中
int[] newArr = new int[num];
//新数组下标
int index = 0;
for(int i=0;i<arr.length;i++) {
if(arr[i]!=0) {
//把非0数存入新数组
newArr[index] = arr[i];
index++;
}
}
//1.3遍历输出新的数组
System.out.println("1、去0后的数组:");
at.eachArr(newArr);
// 2、将数组从小到大进行排序,并遍历输出
Arrays.sort(newArr);//用java环境本身提供的方法排序
System.out.println("\n2、排序后的数组:");//换行作用
at.eachArr(newArr);//遍历输出
// 3、遍历循环将数组中是7的数字改成数字8,遍历输出数组,要求使用增强for循环进行遍历
for(int i=0;i<newArr.length;i++) {
if(newArr[i]==7) {
newArr[i]=8;//赋值
}
}
//增强for循环遍历
System.out.println("\n3、修改后的数组:");
for(int ar : newArr) {
System.out.print(ar+" ");
}
// 4、查询数组,把数组元素的值是3的下标,并输出相应的下标
System.out.println("\n4、数组元素的值是3的下标有:");
for(int i=0;i<newArr.length;i++) {
if(newArr[i]==3) {
System.out.print(i+" ");
}
}
}
/**
* 统计非0的数有多少个
* @return
*/
private int staticsNum(int[] arr) {
int count=0;
for(int ar : arr) {
if(ar!=0) {
count++;
}
}
return count;
}
/**
* 遍历数组
* @param arr
* @return
*/
private void eachArr(int[] arr) {
for(int ar : arr) {
System.out.print(ar+" ");
}
}
}
2、【类】
题目:(1)定义一个用户类(User),用户类中的属性包括:账号、密码、姓名、年龄、性别;定义一个无构造方法和有参构造方法;定义一个修改账号和密码的方法(修改的user对象,账号、密码作为参数传入),返回修改后的对象
(2)用这个类来创建对象u1,u2,u3,u4,u5四个对象,创建数组userArr将这5个对象存储在数组中
(3)调用修改账号和密码的方法,把u2对象的账号改为“Admin”,密码改为 “123456”,再把修改后得对象存放在原来所在得数组里
(4)遍历输出数组里得对象信息
package studentproject;
public class User {
String id;// 账号
String pwd;// 密码、
String name;// 姓名、
int age;// 年龄、
char sex;// 性别
/**
* 无参构造
*/
public User() {
}
/**
* 有参构造
*/
public User(String id,String pwd,String name,int age,char sex) {
this.id = id;
this.pwd =pwd;
this.name = name;
this.age = age;
this.sex = sex;
}
/**
* 修改方法
* @param user
* @param id
* @param pwd
* @return
*/
public User update(User user,String id,String pwd) {
//取出user对象的属性并进行修改,
user.id = id;
user.pwd=pwd;
//返回修改后的对象
return user;
}
//主入口
public static void main(String[] args) {
//创建对象
User u1 = new User("001","123","张三",20,'男');
User u2 = new User("002","123","张三",20,'男');
User u3 = new User("003","123","张三",20,'男');
User u4 = new User("004","123","张三",20,'男');
User u5 = new User("005","123","张三",20,'男');
//将对象存入数组:
//2、创建一个数据类型为User类的数组,存储使用User类创建的对象
User[] users = new User[] {u1,u2,u3,u4,u5};
//3、修改账号和密码
System.out.println("u2原来的账号和密码:"+u2.id+" "+u2.pwd);
//修改
String newid="Admin";
String newpwd = "123456";
User newu2 = u2.update(u2,newid,newpwd);//调用修改的方法
System.out.println("u2原来的账号和密码:"+newu2.id+" "+newu2.pwd);
users[1] = newu2;//新对象存入数组
//4、遍历输出数组的对象信息
System.out.println("数组对象的信息如下:");
int count = 0;
for(User user:users) {
count++;
System.out.println(count+"、"+user.id+" "+user.pwd+" "+user.name+" "+user.age+" "+user.sex);
}
}
}
3、【一级菜单】
题目:
模拟游戏登录和游戏菜单选择功能。要求:讲各种业务功能模块分别定义方法实现。
效果如图:
- 显示登录菜单选择,选择1进行输入账号和密码登录,输入完成之后显示欢迎该登陆者得语句,显示主菜单
- 根据菜单进行相应功能得选择,只要不选择退出,那么救恩那个一直显示功能
package studentproject;
import java.util.Scanner;
public class Prectice3 {
Scanner in = new Scanner(System.in);
int choose;
String user=null;
String pwd=null;
public static void main(String[] args) {
Prectice3 prectice = new Prectice3();
prectice.start();
}
/**
* 开启
*/
private void start() {
//登录界面
choose = login();
//主菜单
mainMenu(choose);
//重复选择,直到选择注销
}
/**
* 主菜单
*/
private void mainMenu(int choose) {
switch(choose) {
case 1:
//登录进入得系统
loging();
//主菜单
showMenu();
break;
case 2:
//游客进入系统
showMenu2();
break;
default:
break;
}
}
/**
* 游客菜单
*/
private void showMenu2() {
String line;
do {
System.out.println("**************************");
System.out.println("\t1、选游戏角色");
System.out.println("\t2、登录");
System.out.println("\t0、退出");
System.out.println("**************************");
System.out.println("键入菜单功能前得数字后,按照enter健:_");
Scanner in = new Scanner(System.in);
line = in.nextLine();
//Scanner in2 = new Scanner(line);
//菜单选择功能
switch(line) {
case "1":
System.out.println("正在选游戏角色");
break;
case "2":
loging() ;//调用登录得方法
break;
case "0":
System.out.println("正在退出。。");
break;
}
}while(!line.equals("0"));
}
/**
* 展示菜单,登录
*/
private void showMenu() {
String line;
do {
System.out.println("**************************");
System.out.println("\t1、选游戏角色");
System.out.println("\t2、修改账号");
System.out.println("\t3、查看皮肤库");
System.out.println("\t4、退出");
System.out.println("**************************");
System.out.println("键入菜单功能前得数字后,按照enter健:_");
line = in.next();
//Scanner in2 = new Scanner(line);
//菜单选择功能
switch(line) {
case "1":
System.out.println("正在选游戏角色");
break;
case "2":
System.out.println("正在修改账号");
break;
case "3":
System.out.println("正在查看");
break;
case "4":
System.out.println("正在退出。。");
break;
}
}while(!line.equals("4"));
}
/**
* 登录账号和密码
*/
private void loging() {
System.out.println("请输入账号:");
user = in.next();//账号
System.out.println("请输入密码:");
pwd = in.next();//密码
System.out.printf("欢迎[%s]进入王者荣耀",user);
}
/**
* 用户登录
*/
private int login() {
// TODO Auto-generated method stub
System.out.println("********欢迎进入王者荣耀*******");
System.out.println("\t1、登录账号");
System.out.println("\t2、游客身份");
System.out.println("***************************");
System.out.println("请选择:");
return in.nextInt();
}
}