Day04
Scanner
package java.util.Scanner
用于接收用户输入数据
基本使用
Scanner sc = new Scanner(System.in);
int nextInt = sc.nextInt();// 读取下一个整数
double nextDouble = sc.nextDouble();// 读取下一个双精度浮点数
String nextString = sc.next();// 读取下一个字符串,直到遇到空格
String line = sc.nextLine();// 读取一行输入,直到遇到换行符
Java三种基本结构
-
顺序结构:从上往下,逐条执行
-
分支结构:条件语句执行一次,每句非必走
-
循环结构:条件语句执行多次,每句非必走
分支结构
分支结构是程序的最基本组成之一
-
if…else…
if (...){ ... } else { ... } graph LR A[开始] --> B(流程) B --> C{判断} C -->|结果1| D[结束] C -->|结果2| E[结束]
-
if…else if…
if (...){ ... } else if (...){ ... } else if (...){ ... } ...
-
switch…case…
[!IMPORTANT]
- default是默认路径,当所有case均不满足条件时,走default
- 所有case中必须添加break语句,否则将会顺序执行所有case分支
switch (...){ case 1: break; case 2: break; case 3: break; ... default: break; }
循环结构
循环三要素:
[!TIP]
循环变量:在整个循环过程中所反复循环的那个数
- 循环变量初始化
- 循环的条件(以循环变量为基础)
- 循环变量的改变
-
for
最常用的循环语句,循环次数可自定义
基本框架
for (第一要素 ; 第二要素 ; 第三要素) { 循环体... }
执行流程
for循环特殊结构
for循环的三个表达式均可省略,但是两个分号必须写,否则会编译错误
-
缺少第一要素
int num = 1; for( ; num<9; num++){ ... }
-
省略第二要素
当不清楚循环次数时可以省略第二表达式,但是这样做很容易进入死循环,可以考虑用while代替for循环
for (int i = 0; ; i++)
-
省略第三要素
省略第三表达式会导致循环变量 i 始终不发生改变,也很容易导致死循环,可以在for循环体中添加对循环变量 i 的修改代码,从而避免死循环
for (int i = 0; i < 10 ; )
-
while
先判断后执行,语句块可能执行,可能不执行
满足while循环时循环执行语句块,不满足则直接停止循环
基本框架
while(boolean){ ... }
执行流程
-
do…while
先执行后判断,语句块至少执行一次
语句块反复执行,直到满足while条件结束循环
基本框架
do{ ... }while(boolean)
执行过程
随机数
-
使用Math库的random()函数
random()函数的范围是确定的,使用时需要对其进行一系列运算,将其范围修改为需要的范围,例:
//取1~1000的随机数 int num = (int)Math.random()*1000+1;
Math.random() //范围为0.0~0.99999999999999999... *1000 //范围为0.0~999.9999999999999999... (int) //范围为0~999
-
使用java工具库中的Random工具
Random random = new Random(); int num = random.nextInt(10); //开区间,[0,10)