当前位置: 首页 > article >正文

java流程控制(Scanner Random swich 分支语句 循环语句)

第一章.键盘录入Scanner

1.概述:是java定义好的一个类

2.作用:将数据通过键盘录入的方式放到代码中参与运行

3.位置:java.util

4.使用:

        a.导包:通过导包的方式找到要使用的类   ->导包位置:类上

           import java.util.Scanner   ->导入的是哪个包下的哪个类

        b.创建对象

           Scanner  变量名= new  Scanner (System.in);

        c.调用方法,实现键盘录入

           变量名.nextInt()  输入整数int型的

           变量名.next()   输入字符串String型的

import java.util.Scanner;

public class Demo01Scanner {
    public static void main(String[] args) {
        //创建对象
        Scanner sc = new Scanner(System.in);
        //录入int型整数
        int data1=sc.nextInt();
        System.out.println("data1="+data1);
        //录入String型字符串
        String data2 = sc.next();
        System.out.println("data2 = " + data2);
    }
}
import java.util.Scanner;

public class Demo02Scanner {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        System.out.println("请依次输入年龄:");
        int old1 = sc.nextInt();
        int old2 = sc.nextInt();
        int old3 = sc.nextInt();
        int temp = old1 >= old2 ? old1 : old2;
        int max = temp >= old3 ? temp : old3;
        System.out.println("最大年龄是" + max);
    }
}

变量名.next():  录入字符串,遇到空格结束录入

变量名.nextLine():   录入字符串,遇到回车结束录入

import java.util.Scanner;

public class Demo03Scanner {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String data1 = sc.next();
        String data2 = sc.nextLine();
        System.out.println("data1 = " + data1);
        System.out.println("data2 = " + data2);
    }
}
Exception in thread "main" java.util.InputMismatchException
	at java.base/java.util.Scanner.throwFor(Scanner.java:947)
	at java.base/java.util.Scanner.next(Scanner.java:1602)
	at java.base/java.util.Scanner.nextInt(Scanner.java:2267)
	at java.base/java.util.Scanner.nextInt(Scanner.java:2221)
	at com.atguigu.a_Scanner.Demo04Scanner.main(Demo04Scanner.java:9)

输入类型不匹配异常

原因:录入数据和要求数据类型不一致

第二章.Random随机数   

学习Random和学习Scanner方式方法一样

1.概述:java自带的一个类

2.作用:可以在指定的范围内随机一个整数

3.位置:java.util

4.使用:

        a.导包: import  java.util.Random

        b.创建对象: Random 变量名 =  new  Random();

        c.调用方法,生成随机数:

                变量名.nextInt()   ->在int的取值范围内随机一个整数

import java.util.Random;

public class Demo01Random {
    public static void main(String[] args) {
        //创建对象
        Random rd = new Random();
        int data1 = rd.nextInt();
        System.out.println("data1 = " + data1);
    }
}

在指定范围内随机一个数:

nextInt(int bound)       ->在 0- (bound-1)   内随机一个数

例:nextInt(10)     ->0-9

import java.util.Random;

public class Demo02Random {
    public static void main(String[] args) {
        //创建对象
        Random rd = new Random();
        //在1-100之间随机一个数
        int data1 = rd.nextInt(100)+1;
        System.out.println("data1 = " + data1);

        System.out.println("=============================");
        
        //在100-999之间随机一个数
        int data2 = rd.nextInt(900)+100;
        System.out.println("data2 = " + data2);
    }
}

第三章.Switch(选择语句)

switch if 循环必须要先掌握定义格式,然后掌握执行流程(带一个数进去,根据执行流程观察值的变化)

1.switch基本使用

1.格式:

        switch(变量){

                case  常量值1:

                        执行语句1;

                        break;

                case  常量值2:

                        执行语句2:;

                        break;

                  case  常量值3:

                        执行语句3;

                        break;

                 case  常量值4:

                        执行语句4;

                        break;

                 ......

                default:

                        执行语句n;

                        break;

        }

2.执行流程:

        用变量接收的值和下面case后面的常量匹配,匹配上哪个case就执行哪个case对应的执行语句,如果以上所有case都没有匹配上就走default对应的执行语句n

3.break关键字:代表的是结束switch语句

4.注意:switch能匹配什么类型的数据:

        byte short int char 枚举 String 

import java.util.Scanner;

public class Demo01Switch {
    public static void main(String[] args) {
        Scanner sc =new Scanner(System.in);
        System.out.println("请您输入一个整数:");
        int data1 = sc.nextInt();
        switch (data1){
            case 1:
                System.out.println("鹅鹅鹅");
                break;
            case 2:
                System.out.println("曲项向天歌");
                break;
            case 3:
                System.out.println("白毛浮绿水");
                break;
            default:
                System.out.println("红掌拨清波");
                break;
        }
    }
}

2.case的穿透性

1.如果没有break,就会出现case穿透性,程序就一直往下穿透执行,直到遇到了break或者switch代码执行完毕了,就停止了

import java.util.Scanner;

public class Demo02Switch {
    public static void main(String[] args) {
        Scanner sc =new Scanner(System.in);
        int data1 = sc.nextInt();
        switch (data1){
            case 1:
                System.out.println("鹅鹅鹅");

            case 2:
                System.out.println("曲项向天歌");

            case 3:
                System.out.println("白毛浮绿水");

            default:
                System.out.println("红掌拨清波");
                break;
        }
    }
}
1
鹅鹅鹅
曲项向天歌
白毛浮绿水
红掌拨清波
import java.util.Scanner;

public class Demo03Switch {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入月份:" );
        int data = sc.nextInt();

        switch (data){
            case 1:
            case 2:
            case 3:
                System.out.println("春季");
                break;

            case 4:
            case 5:
            case 6:
                System.out.println("夏季");
                break;

            case 7:
            case 8:
            case 9:
                System.out.println("秋季");
                break;

            default:
                System.out.println("冬季");
                break;
        }
    }
}

第四章.分支语句

1.if的第一种格式

1.格式:

        if(boolean表达式){

                执行语句;

        }

2.执行流程:先走if后面的boolean表达式,如果是true就走if后面大括号中的执行语句,否则就不走

import java.util.Scanner;

public class Demo01If {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int data1 = sc.nextInt();
        int data2 = sc.nextInt();
        if(data1==data2){
            System.out.println("两整数相等");
        }
    }
}

2.if的第二种格式

1.格式:

        if(boolean表达式){

                执行语句1;

        }else{

                执行语句2;

        }

2.执行流程:先走if后面的boolean表达式,如果是true就走if后面大括号中的执行语句1,否则就走else后边的执行语句2

import java.util.Scanner;

public class Demo01Ifelse {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int data1 = sc.nextInt();
        int data2 = sc.nextInt();
        if(data1==data2){
            System.out.println("两整数相等");
        }else {
            System.out.println("两整数不相等");
        }
    }
}

2.1.练习

任意给出一个整数,请用程序实现判断该整数是奇数还是偶数,并在控制台输出该数是奇数还是偶数

import java.util.Scanner;

public class Demo03ifelse {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个整数:");
        int data = sc.nextInt();
        if(data%2==0){
            System.out.println(data+"为偶数");
        }else {
            System.out.println(data+"为奇数");
        }
    }
}

2.2.练习

需求,利用if else 求出两个数的较大值

import java.util.Scanner;

public class Demo04ifelse {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入两个整数:");
        int data1 = sc.nextInt();
        int data2 = sc.nextInt();
        if(data1>=data2){
            System.out.println(data1);
        }else {
            System.out.println(data2);
        }
    }
}

2.3.练习

从键盘录入一个年份,请输出该年的2月份的总天数,闰年2月份29天,平年28天

闰年:能被4整除,但是不能被100整除

           或者直接被400整除

import java.util.Scanner;

public class Demo05ifelse {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入年份:");
        int data1 = sc.nextInt();
        if(data1%4==0&&data1%100!=0){
            System.out.println(29);
        }else if(data1%400==0) {
            System.out.println(29);
        }else {
            System.out.println(28);
        }
    }
}

3.if的第三种格式

1.格式:if (boolean表达式){

                        执行语句1;

                }else if(boolean表达式){

                        执行语句2;

                }else{

                        执行语句3;

                }

import java.util.Scanner;

public class Demo06ElseIf {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int data1 = sc.nextInt();
        int data2 = sc.nextInt();
        if(data1>data2){
            System.out.println("data1>data2");
        }else if (data1<data2){
            System.out.println("data1<data2");
        }else {
            System.out.println("data1=data2");
        }
    }
}

注意:最后一种情况不一定必须用else,但是必须所有的情况都判断了、

练习:

import java.util.Scanner;

public class Demo07ElseIf {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个星期数:");
        int data1 = sc.nextInt();
        if(data1==1){
            System.out.println("星期一");
        }else if (data1==2){
            System.out.println("星期二");
        }else if (data1==3){
            System.out.println("星期三");
        }else if (data1==4){
            System.out.println("星期四");
        }else if (data1==5){
            System.out.println("星期五");
        }else if (data1==6) {
            System.out.println("星期六");
        }else if(data1==7) {
            System.out.println("星期日");
        }else {
            System.out.println("输入有误!");
        }
    }
}
import java.util.Scanner;

public class Demo08ElseIf {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个年龄:");
        int data1 = sc.nextInt();
        if(data1>=0&&data1<=6){
            System.out.println("婴幼儿");
        }else if (data1>=7&&data1<=12){
            System.out.println("少儿");
        }else if (data1>=13&&data1<=17){
            System.out.println("青少年");
        }else if (data1>=18&&data1<=45){
            System.out.println("青年");
        }else if (data1>=46&&data1<=69){
            System.out.println("中年");
        }else  {
            System.out.println("老年");
        }
    }
}

switch和if的区别:

        switch直接跳到相匹配的case

        if从上到下挨个判断,实际开发主要用if做判断

第五章.循环语句

1.for循环

1.格式:

        for(初始化变量;比较;步进表达式){

                循环语句;

        }

2.执行流程:先走初始化变量,如果是true走循环体,走步进表达式如果比较是true再次走循环语句,直到比较为false循环结束

public class Demo10For {
    public static void main(String[] args) {
        for (int i=1;i<4;i++){
            System.out.println("十个勤天,做大做强!");
        }
    }
}

快捷键:次数.fori

1.1练习

求1-3之间的数据和,并把求和结果输出到控制台上

public class Demo11For {
    public static void main(String[] args) {
        int sum=1;
        for(int i=2;i<4;i++){
            sum = sum + i;
        }
        System.out.println("sum = " + sum);
    }
}

1.2练习

求出1-100的偶数和

public class Demo12For {
    public static void main(String[] args) {
        int sum = 0;
        for(int i=1;i<101;i++){
            if (i%2==0){
                sum+=i;
            }
        }
        System.out.println("1-100的偶数和为:"+sum);
    }
}

1.3练习

统计一下1-100之间的偶数个数

public class Demo12For {
    public static void main(String[] args) {
        int sum = 0;
        for(int i=1;i<101;i++){
            if (i%2==0){
                sum+=1;
            }
        }
        System.out.println("1-100的偶数个数为:"+sum);
    }
}

2.while循环

1.格式:

        初始化变量:

        while(比较){

                循环语句;

                步进表达式;

        }

2.执行流程:初始化变量,如果是true,则执行循环语句及步进表达式,再次比较如果仍为true继续执行循环语句及步进表达式,直至比较为false

public class Demo01While {
    public static void main(String[] args) {
        int i = 0;
        while(i<5){
            System.out.println("十个勤天 做大做强!");
            i++;
        }
    }
}
public class Demo02While {
    public static void main(String[] args) {
        int sum = 0;
        int i = 1;
        while (i<4){
            sum+=i;
            i++;
        }
        System.out.println("1-3的和为 : " + sum);
//        System.out.println("sum = " + sum);
    }
}
public class Demo03While {
    public static void main(String[] args) {
        int sum = 0;
        int i = 1;
        while (i<101){
            if (i%2==0){
                sum+=i;}
            i++;
        }
        System.out.println("1-100之间的偶数和为 : " + sum);
//        System.out.println("sum = " + sum);
    }
}
public class Demo04While {
    public static void main(String[] args) {
        int sum = 0;
        int i = 1;
        while (i<101){
            if (i%2==0){
                sum+=1;}
            i++;
        }
        System.out.println("1-100之间的偶数个数为 : " + sum);
//        System.out.println("sum = " + sum);
    }
}

2.1练习

珠穆朗玛峰8844.43米(8844430毫米),假如我有一张足够大的纸,它的厚度是0.1毫米,请问折叠多少次可以折成珠穆朗玛峰的高度

public class Demo05While {
    public static void main(String[] args) {
        double f = 0.1;
        int i = 0;
        while (f<8844430){
            i++;
            f =f *2;
        }
        System.out.println("i = " + i);
    }
}

3.do...whitch循环(了解)

1.格式:

        初始化变量:

        do{

                循环表达式;

                步进表达式;

        }while(比较);

2.执行流程:初始化变量,循环表达式,步进表达式,比较如果是true则继续循环表达式,直到比较为false为止

3.特点:至少循环一次

public class Demo01DoWhile {
    public static void main(String[] args) {
        int i=0;
        do {
            System.out.println("十个勤天 做大做强!");
            i++;
        }while(i<7);
    }
}

4.循环控制关键字

1.break:

        a.在switch中代表结束Switch语句

         b.在循环语句中代表结束循环

2.continue:

        结束当前本次循环,直接进入下一次循环,直到条件为false为止

public class Demo01Break {
    public static void main(String[] args) {
        for (int i = 0; i <=5; i++) {
            if (i==3){
                //结束循环
                break;
                //结束本次循环
                continue;
            }
            System.out.println("十个勤天 做大做强!"+i);
        }
    }
}

5.死循环

1.概述:一直循环

2.什么条件下一直循环:比较条件一直是true

public class Demo01EndlessAndNest {
    public static void main(String[] args) {
        int count = 0;
//        for (int i = 0; i < 10; ) {
//            count++;
//            System.out.println("十个勤天 做大做强!"+count);
//        }
        while(true){
            count++;
            System.out.println("十个勤天 做大做强!"+count);
        }
    }
}

6.嵌套循环

1.概述:循环中还有循环

public class Demo02Nest {
    public static void main(String[] args) {
        for (int fen = 0; fen < 60; fen++) {
            for (int miao = 0; miao < 60; miao++) {
                System.out.println(fen+"分"+ miao+"秒");
            }
        }
        
    }
}

练习:打印矩形

public class Demo03Nest {
    public static void main(String[] args) {
        //外层循环控制行
        for (int i = 0; i < 5; i++) {
            //内层循环控制列
            for (int j = 0; j < 5; j++) {
                System.out.print("+");
            }
            System.out.println();
        }
    }
}

练习:打印直角三角形

public class Demo03Nest {
    public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            for(int j =0;j<=i;j++){
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

7.练习猜数字小游戏

import java.util.Random;
import java.util.Scanner;

public class Demo01Exam {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Random rd = new Random();
        int rdNumber = rd.nextInt(100) + 1;
        int i=0;
        while(i<5) {
            System.out.println("请猜一个1-100之间的整数");
            int scNumber = sc.nextInt();
            if (scNumber < rdNumber) {
                System.out.println("猜小了");
            } else if (scNumber == rdNumber) {
                System.out.println("猜中了");
                break;
            } else {
                System.out.println("猜大了");
            }
            i++;
        }
        System.out.println(rdNumber);
    }
}

完结!


http://www.kler.cn/a/565723.html

相关文章:

  • java后端开发day23--面向对象进阶(四)--抽象类、接口、内部类
  • 超市里的货物价调整
  • 自然语言处理NLP入门 -- 第六节命名实体识别
  • C++20新特性:`[[no_unique_address]]`、`[[likely]]`和`[[unlikely]]`的探索与
  • 【新手入门】SQL注入之DNSlog注入
  • JavaScript 系列之:垃圾回收机制
  • RabbitMQ 的介绍与使用
  • 降维攻击!PCA与随机投影优化高维KNN
  • DeepSeek 开源狂欢周(二)DeepEP深度技术解析 | 解锁 MoE 模型并行加速
  • 双向冒泡排序算法
  • 模型的在线量化和离线量化
  • 深入理解分布式系统中的关键概念:三阶段提交、补偿事务、消息队列与Saga事务模型及分布式ID生成方案
  • Qt 中实现两个 QTableView 同步高亮与滚动的方案
  • 每日学习Java之一万个为什么?[MySQL面试篇]
  • 内容中台实战指南:效能提升与体系构建
  • Laravel从入门到精通:开启高效开发之旅
  • spring的15个经典面试题
  • reCAPTCHA v3 实现笔记
  • 第三方应用程序接入DeepSeek服务的安全策略与实践
  • 【分布式锁通关指南 04】redis分布式锁的细节问题以及RedLock算法原理