黑马程序员技术交流社区

标题: 【成都校区】学习心得 [打印本页]

作者: mengmatu    时间: 2018-4-4 12:48
标题: 【成都校区】学习心得
第四天的学习心得体会
1.还是一句话,多敲代码;
今天的知识点主要有:
数组
        什么是数组?
                数组就是一个容器,是引用数据类型

        数组的定义格式?
                格式一:数据类型[] 数组的名字 = new 数据类型[元素的个数];
                        int[]       arr      =  new int[5];

                格式二:数据类型[] 数组的名字 = new 数据类型[]{元素,元素,... ...};
                        int[]      arr      = new  int[]{1,2,3,4,5};

                        变形:数据类型[] 数组的名字 = {元素,元素,... ...};
                                int[]    arr       =  {1,2,3,4,5};
        数组的操作?
                //创建一个int类型的容器
                int[] arr = new int[5];
                //往容器里面扔东西
                注:索引值是从0开始的,最大的索引值是数组的长度-1
                arr[0] = 12;
                arr[1] = 14;
                arr[2] = 18;
                arr[3] = 20;
                arr[4] = 25;
                //得到容器里的东西
                int i = arr[0];
                int j = arr[1];
                int a = arr[2];
                int b = arr[3];
                int c = arr[4];

                //得到容器里的东西,使用遍历效果更好
                注:arr.length是获取容器的长度的
                for(int i = 0; i < arr.length; i++) {
                        int x = arr[i];
                        System.out.println(x);
                }
                //获取最大值
                方式一:
                int max = arr[0];
                for(int i = 1; i < arr.length; i++) {
                        if(max < arr[i]) {
                                max = arr[i];
                        }
                }
                System.out.println(max);
                方式二:
                int max = 0;
                for(int i = 1; i < arr.length; i++) {
                        if(arr[max] < arr[i]) {
                                max = i;
                        }
                }
                System.out.println(arr[max]);
        数组的内存:
                int[] arr = new int[5];

                =的左边:在栈内存汇总
                =的右边:在堆内存中(new出来的在堆内存中)

2.编写代码练习:
/*
        假设一个简单的在ATM的取款过程如下:首先提示用户输入密码(password),
        最多只能输入3次,超过3次则提示用户"密码错误,请取卡"交易结束。
        如果用户密码正确,再提示用户输入金额(amount),ATM只能输出100元的纸币,一次取钱数要求最低0元,最高1000元。
        如果用户输入的金额符合上述要求,则打印输出用户取的钱数,最后提示用户"交易完成,请取卡",否则提示用户重新输入金额。假设用户密码是"111111"。
        分析:
                1.创建键盘录入对象
                2.定义boolean类型的变量isError(表示是否正确取款,初始值为true,表示取款失败)
                3.利用for循环,循环录入密码(最多三次)
                        (1)定义String类型的变量password,并通过键盘录入给password赋值
                        (2)使用if判断password的值
                                a.如果password不等于111111,continue提前结束本次循环,继续进行下次密码的输入
                                b.如果password等于111111,进行取款操作
                                        A.通过while循环录入取款金额
                                                aa.定义int类型的变量amount,并通过键盘录入给amount变量赋值
                                                bb.使用if判断,如果amount的值在0到1000之间
                                                        打印"取走现金XX元"
                                                        isError赋值为false
                                                        break;//取款成功,终止while循环
                                                cc.如果amount的值不再0到1000之间
                                                        提示"您输入的取款金额有误,请重新输入:",while循环继续执行
                               
                4.使用if判断isError的值
                        (1)如果isError为true,打印"密码错误,请取卡"
                        (2)如果isError为false,打印"交易完成,请取卡"
*/
public class Task06 {
        public static void main(String[] args) {
//                1.创建键盘录入对象
                Scanner sc = new Scanner(System.in);
//                2.定义boolean类型的变量isError(表示是否正确取款,初始值为true,表示取款失败)
                boolean isError = true;
                System.out.print("请输入密码:");
//                3.利用for循环,循环录入密码(最多三次)
                for(int i = 0;i<3;i++) {
//                        (1)定义String类型的变量password,并通过键盘录入给password赋值
                        String password = sc.nextLine();
//                        (2)使用if判断password的值
//                        a.如果password不等于111111,continue提前结束本次循环,继续进行下次密码的输入
                        if(!"111111".equals(password)) {
                                System.out.print("密码错误,请重新输入:");
                                continue;
                        }
                        System.out.print("请输入取款金额:");
//                        b.如果password等于111111,进行取款操作
//                        A.通过while循环录入取款金额
                        while(true) {
//                                aa.定义int类型的变量amount,并通过键盘录入给amount变量赋值
                                int amount = sc.nextInt();
//                                bb.使用if判断,如果amount的值在0到1000之间
                                if(amount>=0&&amount<=1000) {
//                                        打印"取走现金XX元"
//                                        isError赋值为false
//                                        break;//取款成功,终止while循环
                                        System.out.println("请取走现金:"+ amount + "元");
                                        isError = false;
                                        break;
                                }
//                                cc.如果amount的值不再0到1000之间
//                                提示"您输入的取款金额有误,请重新输入:",while循环继续执行
                                System.out.print("您输入的取款金额有误,请重新输入:");
                               
                        }
                       
                }
//                4.使用if判断isError的值
//                (1)如果isError为true,打印"密码错误,请取卡"
                if(isError) {
                        System.out.println("密码错误,请取卡");                       
                } else {
//                        (2)如果isError为false,打印"交易完成,请取卡"
                        System.out.println("交易完成,请取卡");
                }
        }
}

生命不息,奋斗不止!!!加油!

作者: 妖精的尾巴    时间: 2018-4-5 12:33
消灭0回复,加油
作者: 向清波    时间: 2018-4-5 13:53
瓜子花生啤酒饮料,有要的么
作者: 风萧萧9    时间: 2018-4-5 13:58
一起努力^0^~加油




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2