Java流程控制
用户交互Scanner
- 用next方式接收数据
import java.util.Scanner;
public class Demo1_Scanner {
public static void main(String[] args) {
// 创建一个扫描对象,用next接收键盘输入数据
Scanner sc = new Scanner(System.in);
// 输入后按回车继续执行下一步
// 判断用户是否有输入字符
if (sc.hasNext()) {
// 若有,则接收,用字符串存储
String str = sc.next();
// 将其输出
System.out.println("输入的内容为:" + str);
}
// 关闭scanner,节省资源
sc.close();
}
}
- next只输入一个字符串,不输入空格后的数据
- 即以空格为结束
3. 用nextLine方式接收数据
import java.util.Scanner;
public class Demo1_Scanner {
public static void main(String[] args) {
// 创建一个扫描对象,用nextLine接收键盘输入数据
Scanner sc = new Scanner(System.in);
// 输入后按回车继续执行下一步
// 判断用户是否有输入字符
if (sc.hasNextLine()) {
// 若有,则接收,用字符串存储
String str = sc.nextLine();
// 将其输出
System.out.println("输入的内容为:" + str);
}
// 关闭scanner,节省资源
sc.close();
}
}
随机数Random
- 概述:类似Scanner,是Java提供的API,提供产生随机数功能
- 使用步骤:
- 导包
import java.util.Random;
- 创建对象
Random r = new Random(); //r为变量名
- 产生随机数
int n = r.nextInt(10); /* 获取数据范围:[0,10),即包括0,不包括10 */
- 导包
三种控制结构
顺序结构
- 最基本、最简单的算法结构,任何算法都离不开的结构
- 按顺序一句一句的执行
选择结构
- if单选择结构
- 语法:
if(布尔表达式){
//若布尔表达式为true将执行的语句
}
- if双选择结构
- 语法
if(布尔表达式){
//若布尔表达式为true则执行
}else{
//若布尔表达式为false则执行
}
- 嵌套if结构
- 语法
if(布尔表达式1){
//若布尔表达式1为true则执行
}else if(布尔表达式2){
//若布尔表达式2为true则执行
}else{
//若布尔表达式均为false则执行
}
- switch多选择结构
- 语法:
switch(expression){
case value1:
//语句
break;
case value2:
//语句
break;
default:
//语句
}
- 通过sweitch case语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支
- switch语句中变量类型可以为:
- byte、short、int、或char
- javaSE开始,sweitch字符串支持String类型
- 同时case标签必须为字符串常量或自变量
- switch具有穿透现象
- 当case中有符合条件时,将执行该case及其下的所有case
- 使用break跳出语句,终止穿透现象
- default:
- 只在所有case都不符合时执行
- 不参与穿透现象
循环结构
- while循环
- 语法格式:
while(布尔表达式){ //循环内容 }
- 只要布尔表达式为true,循环则一直执行
- 语法格式:
- do…while循环
- 与while循环类似,但至少会执行一次
- 其为
先执行后判断
- 其为
- 语法格式:
do{ //代码语句 }while(布尔表达式);
- 与while循环类似,但至少会执行一次
- for循环
- 支持迭代的一种通用结构
- 是最有效、灵活的循环结构
- 执行次数在执行前决定
- 语法格式:
for ( 初始化 ; 布尔表达式 ; 更新 ){ // 代码语句 }
- Java5中引入增强for循环,主要用于数组
- 语法格式:
for ( 声明语句 : 表达式 ) { //代码语句 }
- 声明语句: 声明新的的局部变量
数据类型 变量名
- 该变量的类型必须和数组元素的类型匹配
- 其作用域在循环语句块
- 其值与此时数组元素的值相等
- 表达式:要访问的数组名或集合对象,或返回值为数组的方法
- 声明语句: 声明新的的局部变量
- 语法格式:
- 循环控制:
- break
- 可用于任何循环主体部分
- 用于强制退出循环,不执行循环中剩余语句
- continue
- 用于循环语句中
- 跳出本次循环,开始下一次循环
- goto
- 是Java的一个保留字,但未正式使用
- 类似带标签的break和continue
- 标签:指后面跟着一个冒号的标识符,如:label:
- Java用到标签的地方:循环语句之前
- 作用:break和continu中断循环会到存在标签的地方
- break
- 死循环
- 格式
- for死循环
for( ; ; ){ }
- while死循环
while(true){ }
- do…while死循环
do{ }while
- for死循环
- 格式