java day04记录

本文主要记录arr数组用法、count计算、arr倒排序技巧案例

package day4homework;

import java.util.Scanner;
/*
从键盘上输入10个整数,合法值位1、2或3,不是这3个数则为非法数字。试编程统计每个整数和非法数字的个数。
1.创建键盘录入对象
2.定义长度为10的int类型的数组
3.定义int类型的变量count1(统计1的个数)、count2(统计2的个数)、count3(统计3的个数)、count4(统计非法数字的个数)
4.利用for循环给数组元素赋值
5.利用for循环遍历数组
    (1)获取当前元素
    (2)使用if进行判断
        a.如果等于1 count1++
        b.否则,如果等于2 count2++
        c.否则,如果等于3 count3++
        d.否则 count4++

6.打印统计结果*/
public class ArrayCount4 {
    public static void main(String[] args) {
        int[] arr = new int[10];
        int count = 0;
        int count1 = 0;
        int count2 = 0;
        for (int i=0;i<10;i++) {
            Scanner s = new Scanner(System.in);
            int putdate = s.nextInt();
            arr[i] = putdate;
            if (arr[i]==1) {
                count++;
            }else if (arr[i]==2) {
                count1++;
            }else {
                count2++;
            }
        }
        System.out.println("1:"+count);
        System.out.println("2:"+count1);
        System.out.println("不合法:"+count2);
    }
}

输出结果:

package day4homework;

import java.util.Scanner;
/*
假设有一个长度为5的数组,数组元素通过键盘录入,如下所示:
int[] arr = {1,3,-1,5,-2}
要求:
创建一个新数组newArr[],新数组中元素的存放顺序与原数组中的元素逆序,并且如果原数组中的元素值小于0,
在新数组中按0存储。最后输出原数组和新数组中的内容

1.创建键盘录入对象
2.定义长度为5的int类型的数组arr
3.利用for循环通过键盘录入给数组元素赋值
4.定义长度为5的int类型的新数组newArr,定义int类型的变量index=0,用来表示新数组的元素索引
5.倒着遍历原数组
    (1)定义int类型的变量num,并将数组当前元素的值赋值给num
    (2)使用if判断num的值
        a.如果num>=0,直接将num赋值给新数组的当前元素,index++
        b.否则直接将0复制给新数组的当前元素,index++
*/
public class Array_DaoXu5 {
    public static void main(String[] args) {
        int[] arr = new int[5];
        System.out.println("请输入:");

        for(int i=0;i<=4;i++) {
            Scanner s = new Scanner(System.in);
            int putdate = s.nextInt();
            arr[i] = putdate;
            System.out.println(arr[i]);
            }

        int[] arr2 = new int[5];
        int count = -1;
        for(int i=4;i>=0;i--) {
            count++;//count 从0加到4
            if(arr[i]>=0) {
                arr2[count] = arr[i];
            }else {
                arr2[count] = 0;
            }
            System.out.println(arr2[count]);
        }
        }
    }

//public class Test5 {
//    public static void main(String[] args) {
//        //定义一个数组,用来接收数据
//        int[] arr = new int[5];
//        //创建键盘录入对象
//        Scanner sc = new Scanner(System.in);
//        //键盘录入数据,将获取到的数据存入到数组中
//        for(int i = 0; i < arr.length; i++) {
//            System.out.println("请输入第" + (i + 1) + "个数据:");
//            //获取键盘录入数据
//            int a = sc.nextInt();
//            arr[i] = a;
//        }
//        //定义新数组,用来存储要求的数据,长度和源数组一致
//        int[] newArr = new int[arr.length];
//        //遍历源数组
//        for(int i = 0; i < arr.length; i++) {
//            //倒着获取每一个元素
//            int a = arr[arr.length - 1 - i];
//            //判断该元素是否是负数,如果是,给新元素赋0
//            if(a < 0) {
//                newArr[i] = 0;
//            } else {//如果不是,将该元素赋值给新数组
//                newArr[i] = a;
//            }
//        }
//        //打印结果
//        System.out.println("原数组内容:");
//        for(int i = 0; i < arr.length; i++) {
//            System.out.print(arr[i] + " ");
//        }
//        System.out.println();
//        System.out.println("新数组内容:");
//        for(int i = 0; i < newArr.length; i++) {
//            System.out.print(newArr[i] + " ");
//        }
//    }
//}

输出结果

package day4homework;

import org.omg.Messaging.SYNC_WITH_TRANSPORT;

import java.util.Scanner;
/*
假设一个简单的在ATM的取款过程如下:首先提示用户输入密码(password),
最多只能输入3次,超过3次则提示用户"密码错误,请取卡"交易结束。
如果用户密码正确,再提示用户输入金额(amount),ATM只能输出100元的纸币,一次取钱数要求最低0元,最高1000元。
如果用户输入的金额符合上述要求,则打印输出用户取的钱数,最后提示用户"交易完成,请取卡",否则提示用户重新输入金额。假设用户密码是"111111"。
*/
public class ArrayATM {
    public static void main(String[] args) {
        System.out.println("请输入密码:");
        int password = 123456;
        for(int i=0;i<3;i++) {
            Scanner s = new Scanner(System.in);
            int putdate = s.nextInt();
            if(putdate == password) {
                System.out.println("恭喜,输入正确!");

                    while (true) {
                        System.out.println("请输入取款金额:");
                        int many = s.nextInt();
                        int many2 = 0;
                        if (many%10%10==0) {
                            many2 = many;
                            if(many2/100<=10&many2/100>0) {
                                System.out.println("请取走现金:"+many2);
                                break;
                            }else {
                                System.out.println("输入失败,请重新输入");
                                break;
                            }
                        }else {
                            System.out.println("输入失败,请重新输入2");
                        }

                    }
                break;
            }else {
                if(i==2) {
                    System.out.println("密码错误,请取卡~~");
                    break;
                }

                System.out.println("输入错误,请重新输入:");
            }
        }
    }
}

输出结果:

原文地址:https://www.cnblogs.com/longesang/p/10839284.html