zoukankan      html  css  js  c++  java
  • JAVA基础 键盘录入与分支、循环结构案例

    一、键盘录入

        public static void main(String[] args) {
            //案例:键盘录入技术
            //得到一个键盘扫描器对象
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入您的年龄:");
            //调用sc对象的功能等待接收用户输入的数据
            //这个代码会等待用户输入数据,直到用户输入完数据并按了回车键就会把数据拿到
            int age = sc.nextInt();
            System.out.println("您的年龄是:" + age);
            System.out.println("请输入您的名字");
            String name = sc.next();
            System.out.println("欢迎" + name);
            }

    二、分支结构

    1、if分支:根据判断的结果(真或假)决定执行某个分支的代码

    public static void main(String[] args) {
            //分支结构,格式1:if(条件表达式){代码...}
            // 需求:心跳(60-100)之间是正常的,否则系统提示进一步检查
            int hearBeat = 30;
            if (hearBeat < 60 || hearBeat > 100) {
                System.out.println("系统检测到您的心跳有异常,请进一步检查,当前心跳系数为:" + hearBeat);
            }
            System.out.println("检查结束");
    //分支结构,格式2:if(条件表达式){代码...} else{代码... //需求:发红包,有钱就发,没钱就不发 double money = 1000.11; if (money>=1314){ System.out.println("您的红包已发送"); } else { System.out.println("没钱就别发了"); }
    //分支结构,格式3:if(条件表达式){代码...} elseif(条件表达式){代码...} else{代码...} //需求:绩效系统 0-60 C 60-80 B 80-90 A 90-100 A+ int score = 160; if(score>=90&&score<=100){ System.out.println("您的绩效为:A+"); } else if(score>=80&&score<90){ System.out.println("您的绩效为A"); } else if(score>=60&&score<80){ System.out.println("您的绩效为B"); } else if(score>=0&&score<60){ System.out.println("您的绩效为C"); } else { System.out.println("您的输入的成绩不在0-100范围内"); } }

    2、switch

      if其实在功能上远远强大于switch,if适合做区间匹配,switch适合做 值匹配的分支选择、代码优雅

      switch分支注意事项:

    • 表达式类型只能是byte,short,int,char,jdk5开始支持枚举,jdk7开始支持string,不支持double,float,long
    • case给出的值不允许重复,且只能是字面量,不能是变量
    • 不要忘了写break,否则会出现穿透现象
    public static void main(String[] args) {
            //switch(表达式){case值:执行代码}
            String week = "周二";
            switch (week){
                case "周一":
                    System.out.println("一周的第一天");
                    break;
                case "周二":
                    System.out.println("今天周二啦");
                    break;
                default:
                    System.out.println("输入的不是周数据");
            }
    }

    3、switch的穿透性

      如果代码执行到没有写break的case块,执行完后将直接进入下一个case块执行代码(而且不会进行任何匹配),直到遇到breask才跳出分支,这就是switch的穿透性

    三、循环结构

    1、for循环

    public static void main(String[] args) {
            //for循环,for(初始化语句;循环条件;迭代语句){循环体语句}
            //需求1:计算1-5的和
            int sum =0;
            for(int i=1;i<=5;i++){
                sum += i; //把数据加给自己,用+=,即sum=sum+i
            }
            System.out.println("1-5的和是"+sum);
    
            //需求2:求1-10的奇数之和,并把求和结果在控制台输出
            //分析:1、定义for循环使其能够依次访问到1-10的数;
            // 2、在for循环中,通过if筛选出奇数;
            // 3、在循环外定义一个整数变量sum来累加这些数据
            int count =0;
            for(int i=1;i<10;i++){
                if(i%2==1){
                    count +=i;
                }
            }
            System.out.println("1-10的奇数之和是"+count);
    
    
            //需求3:找出水仙花数并输出(1、水仙花数是一个三位数;2、水仙花数的个位、十位、百位的数字立方和等于原数)
            //分析:1、定义一个for循环从100一直到999
            //2、每次访问到数据后,提取该数据的:个位、十位、百位数字
            //3、使用if判断:个位、十位、百位的数字立方和是否等于原数,等于则输出该数据
            count = 0;// 统计水仙花的个数
            for(int i=100;i<=999;i++){
                int ge = i % 10;//取余,比如157%10=15.7,取余即7
                int shi = i / 10 % 10; //比如157/10=15,15%10=1.5,最后取余为5
                int bai = i / 100;//比如157/100=1 (保留整数)
                if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i){
                    System.out.print(i+"\t");//"\t"是空格特殊字符,注意如果要让输出内容在同一行,要把print的ln去掉
                    //如果想知道水仙花数的个数,可以在循环外定义一个变量count用于记录水仙花数,每输出水仙花数时,让count++
                    count ++;
                }
            }
            System.out.println();//换行
            System.out.println("水仙花的个数为"+count);
    }

    2、while循环

      使用规范:知道循环几次,使用for;不知道循环几次建议使用while

    public static void main(String[] args) {
    //需求1:珠穆朗玛高度是8848860,纸张厚度是0.1,折叠纸张直到不低于珠穆朗玛位置,求折叠几次(不知道循环多少次的时候用while)
            //3、定义一个变量用于记录纸张折叠的次数
            int countpeak = 0;
            //1、定义变量记录山峰的高度、纸张的百度
            double peakHeight = 8848860;//山峰高度
            double paperThickness = 0.1;//纸张厚度
            //2、定义一个while循环控制纸张进行折叠
            while (paperThickness<peakHeight){
                paperThickness *= 2;//每折叠一次,纸张厚度为原来的2倍
                countpeak ++;
            }
            System.out.println("折叠次数为"+countpeak);
            System.out.println("纸张最终的厚度"+paperThickness);
    }

    3、do-while循环

      先执行再判断循环条件

    int i = 0;
    do{
      System.out.println("hello");  
      i++;  
    }while(i<3);

    4、死循环、循环嵌套、break、continue

       死循环:一直循环的执行下去,如果没有干预不会停止下来

      嵌套循环:外部循环每循环一次,内部循环全部执行完一次。

      跳转控制语句介绍:

    • break:跳出并结束当前所在循环的执行(注意:只能用于结束所在循环,或者结束所在switch分支的执行)
    • continue:用于跳出当前循环的当前执行,进入下一次循环。(注意:只能在循环中进行使用)
    public static void main(String[] args) {
    //死循环需求:系统密码是520,请用户不断输入密码验证,验证不对输出密码错误,验证成功输出欢迎进入系统,并停止程序
            int okPassword = 520;//定义正确的密码
            Scanner scpa = new Scanner(System.in);
            while (true){   //定义死循环让用户不断输入密码
                System.out.println("请您输入正确的密码:");
                int password = scpa.nextInt();
                if(password==okPassword){
                    System.out.println("登录成功了");
                    break;
                }else {
                    System.out.println("密码错误");
                }
            }
    
            //嵌套循环:5天,每天说3遍我要学习
            for(int i=0;i<=5;i++){
                for(int j=0;j<=3;j++){
                    System.out.println("我要学习");
                }
            }
    }

    四、案例技术

    1、Random的使用

    public static void main(String[] args) {
    //随机数类Random:生成0-10之间的随机数
            Random r = new Random();
            int data = r.nextInt(10);//0-9 不包含10(包前不包后)
            int number =r.nextInt(10)+1;//1-0,生成1-10之间的随机数
            int number1 = r.nextInt(27)+65;//生成65-91之间的随机数,减加法: 65-91转换成 (0-26)+65
            System.out.println("生成的随机数为:"+data);
            System.out.println("生成的随机数为:"+number);
    }

    2、猜数字游戏

    public static void main(String[] args) {
    //猜数字游戏
            Random num = new Random();
            int numdata = r.nextInt(100)+1;//随机生成一个数字1-100之间 (0-99)+1
            Scanner numsc = new Scanner(System.in);
            while (true){  //使用一个死循环让用户不断的去猜测,并给出提示
                System.out.println("请您输入猜测的数据(1-100):");
                int guessNumber = numsc.nextInt();
                if(guessNumber<numdata){
                    System.out.println("您猜测的过小了");
                }else if(guessNumber>numdata){
                    System.out.println("您猜测的过大了");
                }else {
                    System.out.println("恭喜您猜中了");
                    break;//直接跳出并结束当前死循环
                }
            }
    }
  • 相关阅读:
    怎么在java 8的map中使用stream
    在java 8 stream表达式中实现if/else逻辑
    Lambda表达式最佳实践
    java并发Exchanger的使用
    java中functional interface的分类和使用
    java 8 Streams简介
    一篇文章让你彻底弄懂SSL/TLS协议
    基于口令的密码(PBE)
    更加安全的密钥生成方法Diffie-Hellman
    有关密钥的最全总结都在这了
  • 原文地址:https://www.cnblogs.com/Chilam007/p/15616630.html
Copyright © 2011-2022 走看看