day002流程控制

Scanner类(用户交互)

  • Scanner对象:java.util.Scanner(包)是java5的新特征;我们可以通过Scanner类来获取用户的输入(扫描器)

  • 基本语法:Scanner s = new Scanner(Sysrem.in);

  • 通过Scannery类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。

Scanner 扫描器名 = new Scanner(System.in);开始

scanner.close();结束

凡是属于IO流的类,如果不关闭会一直占用资源

  • 扫描器名.nextInt();获取在控制台输入的整数

  • 扫描器名.next();获取在控制台输入的字符串


  • nextInt()

  1. 一定要读取到有效字符后才可以结束输入;

  2. 对输入有效字符之前遇到的空白,next()方法会自动将其去掉;

  3. 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符;

  4. **next()不能得到带有空格的字符串;

  • 备注:

  1. 对于next×××()方法,如果在输入时使用空格,那么系统会自动对当前输入的信息进行分割,如果空格大于等于1个,那么会自动对后面的next×××()方法分配它分割的值,如果有对应的next×××()方法,就可以接收到分割的值,如果没有,那么分割的值就被删除

  2. 当使用空格进行分割时,如果分割后的数据类型不能匹配后面next×××()方法,就会抛出异常:


  • nextLine():

  1. 以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符;

  2. 可以获得空白;

Random类(随机数)

  • 用于生成随机数

  • 需要导入所在的包,导入格式:import java.util.Random;

  • 实例化创建对象:Random ran = new Random();

    • 获取随机整数,范围是[0,50):int a = ran.nextInt(50);

    • 获取随机小数,范围是[0,1):double b = ran.nextDouble();

    • 获取一个[a,b)的随机数:int c = rand.nextInt(b-a+1) + a;

顺序结构

  • java的基本结构就是顺序结构,除非特别说明,否则就按照顺序一句一句执行;

  • 顺序结构是最简单的算法结构;

  • 语句与语句之间、框与框之间是按从上到下的顺序进行的,它是若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构

选择结构控制语句

  1. if单选择结构:if(){}

  2. if双选择结构:if(){}}else{}

  3. if多选择结构:if(){} else if(){} else{}

if语句至多有一个else语句,else语句在所有的else if语句之后;

if语句可以有多个else if 语句,但必须在else 之前;

一旦一个else if 语句为true ,其他的else if以及else 语句都跳过。

  1. 嵌套的if结构:在一个if或者if else语句里使用if 或者 if else 语句;

if控制语句,并列判断;if else (if else if else )控制语句,上面成立,下面不再判断;多条件判断;

  • if else 语句;int a = 85; if(a<60) { System.out.println("不及格"); }else if (a<=70) { System.out.println("及格"); }else if(a<=80){ System.out.println("中等"); }else if (a<=90) { System.out.println("良好"); }else if (a<100) { System.out.println("优秀"); }else if (a==100) { System.out.println("满分"); }

    switch多选择结构

    Switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支;

    Switch语句中的变量类型只能是整型、字符型(byte,short,int.long,char),JDK7后支持字符串型(String型);

    同时,case标签必须为字符串常量或者字面量;

  • switch case 语句;case 穿透,Switch 匹配一个具体的值;每个case后尽量跟break,用于跳出;

 

反编译:java---class(字节码文件)----反编译(idea)

  • switch(light) {
    case "绿灯":
    System.out.println("车通行了");
    break;
    case "黄灯":
    System.out.println("观察通行!!");
    break;
    default:
    System.out.println("停止通行");
    }```

循环结构语句

  • for 循环;for (初始化;布尔表达式;更新){代码语句}

  1. for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构

  2. for循环执行的次数在执行前就确定的。

注意点:

最先执行初始化步骤,可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句;

然后,测试布尔表达式的值,true,执行循环体;false,循环终止,开始执行循环体后的语句;

执行一次循环体后,更新循环控制变量(迭代因子控制循环变量的增减)再次检测布尔表达式的值,循环上述过程。

  • 增强for循环:主要用于数组或集合;for(声明语句:表达式){代码语句}

  • while 循环;当布尔表达式为真的时候,执行循环体内容 ```while(布尔表达式){

    }

    while(true){}会无限循环(死循环),正常编程应避免;

  • do -while 循环;先执行do中的内容,然后进行判断,true继续执行,反之结束,do中定义的变量只能do中使用,不能在条件中和do外使用。```do {

    if(i==11){

    break;

    }

    i++;

    }while(true);

while与do--while的区别:

  1. while先判断后执行。do--while是先执行后判断!

  2. do--while总是保证循环体会至少执行一次!!

在有限范围内做重复性动作

posted @ 2022-07-28 18:57  大嘟肚  阅读(26)  评论(0)    收藏  举报