3.JAVA流程控制
Scanner类
在基础语法里,只能打印出简单的运算结果,并不能实现程序和人的交互。
Java 5 的新特性里,提供了一个工具类Scanner,便于获取用户的输入。
基本语法
Scanner s = new Scanner(System.in);
创建扫描器,用于接收用户输入
判断语句表达式
if (Scanner.hasNextLine());
先用hasNext()和hasNextLine()方法来判断字符是否输入
类似的判断方法还有:
hasNextByte() //判断字节型是否输入
hasNextInt() //判断整数型是否输入
hasNextShort() //判断Short型是否输入
hasNextLong() ////判断Long型是否输入
hasNextFloat() //判断Float型是否输入
hasNextDouble() //判断Double型是否输入
hasNextBoolean() //判断Boolean型是否输入
next()和nextLine()的区别
next只能获取不含空格的字符,nextLine可以获取一行字符
方法获取表达式
通过Scanner类的next()和nextLine()方法来获取输入的字符
String str = next()/nextLine()//获取字符放在str里
类似的方法还有:
nextByte() //获取字节型
nextShort() //获取Short型
nextInt() //获取Int型
nextLong() //获取Long型
nextFloat() //获取Float型
nextDouble() //获取Double型
nextBoolean() //获取Boolean型
关闭IO流
scanner.close;
如果不关闭,将会占用资源,养成习惯
if条件语句
if选择结构一般用来做某些判断 并满足某些条件来执行语句。
if单选择结构
满足if布尔表达式就执行if括号内的语句 否则直接跳到下一步
案例
//if单选择结构
boolean select = true;
if (select == false){
System.out.println("布尔值为false");//满足条件执行 不满足则跳出
}
if双选择结构
判断布尔表达式的值为true 执行if括号内的语句 否则执行else内的语句。
案例
//if双选择结构
int age = 17;
if (age >= 18){
System.out.println("年龄已到成年阶段");//满足条件执行if下语句 不满足执行else下语句
}else{
System.out.println("年龄未到成年阶段!");
}
if多选择结构
在if双选择结构的基础上 可以在中间加上若干个else if的关键字 当满足布尔表达式时 只执行其中一个分支 程序便往下执行。
案例:
//if多选择结构
int score = 44;
if (score == 60){
System.out.println("成绩刚好及格");//满足哪个分支判断就执行哪个分支的语句 若都不满足跳出整个判断
}else if(score >= 90){
System.out.println("成绩优秀");
}else if(score >= 80){
System.out.println("成绩良好");
}else if (score >= 60){
System.out.println("成绩及格");
}else{
System.out.println("成绩不合格");//当以上分支判断都不满足最后才执行else语句
}
switch开关逻辑语句
if选择结构的布尔表达式一般用来判断一个范围,而switch选择结构的布尔表达式用来判断一个具体的值。
案例
Scanner in = new Scanner(System.in);
System.out.println("输入int类型常数");
int a = in.nextInt();
switch(a){
case 1:
System.out.println("结果等于1");//满足case的常数表达式
break;
case 5:
System.out.println("结果等于5");
break;
default:
System.out.println("输入不是1和5!");//所有case不匹配才执行 不受顺序的影响
while循环结构
单个while循环结构
顺序结构和选择结构只能执行程序一次 while可以实现将某一段语句执行重复执行,在实际编程中引用广泛。
-
整个while结构可以称为一个循环体
-
如果while中没有设置条件 将会一直循环括号内的语句 称为死循环
-
while中添加了条件 当while循环到不满足条件时 程序才会停止
语法:
while(布尔表达式){
//循环的语句
};
使用单个while循环的案例
int num = 0;
while (num < 10) {
System.out.print(num + " ");//num变量循环自增直到不满足布尔表达式后跳出
num++;
}
System.out.println();
do while循环结构
do while结构先将循环语句执行一次再判断是否循环执行,do写在前 while写在后。
语法:
do{
//循环的语句
}while(条件表达式);
使用do while循环的案例
int a = 1;
do {
a++;
System.out.println("代码输出" + a);//不满足条件也会执行一次
}while(a > 10);
for循环结构
for结构包含了变量声明 判断条件和变量值变化三个选项,中间用分号隔开。与while执行效果一致的情况下代码跟简洁
当需要循环次数较多时,建议使用for循环for循环,声明 条件 更新值 可以为空,没有固定规范。
运行过程:
定义后,判断条件,先输出,再自增,最后更新
//声明;条件;迭代;
for (int a = 1;a > 1;a++;){
//循环的语句
}
使用for循环依次输出1到10的数字
for (int i = 0;i < 10;i++){
System.out.print(i+" ");
}
System.out.println();
增强for循环结构
Java 5引用的一个新特性
增强for循环主要用于数组和集合的使用
语法
for(//变量声明:表达式){//语句块};
主要用于数组和集合的循环操作