Java流程控制
一.用户交互 Scanner
1. Scanner.next()
1、一定要读取到有效字符后才可以结束输入。
2、对输入有效字符之前遇到的空白,next()方法会自动将其去掉。
3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
4、next()不能得到带有空格的字符串。
2. Scanner.nextLine()
1、以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。
2、可以获得空白。
3. Scanner 相关代码
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
//创建一个扫描器对象,用于接受键盘数据
Scanner scanner = new Scanner(System.in);
//System.out.println("使用next方式接收:");
判断用户有没有输入字符串
//if (scanner.hasNext()){
// String str = scanner.next(); //程序会等待用户输入完毕
// System.out.println("输出的内容为:"+str);
//}
System.out.println("使用nextLine方式接收:");
//判断用户有没有输入字符串
if (scanner.hasNext()){
String str = scanner.nextLine(); //程序会等待用户输入完毕
System.out.println("输出的内容为:"+str);
}
// 凡是属于IO流的类 如果不关闭会一直占用资源.要养成好习惯用完就关掉
scanner.close();
}
}
二.结构
4. 顺序结构
程序自下而上逐行执行,一条语句执行完之后继续执行下一条语句,一直到程序的末尾。
5. 选择结构、条件嵌套
根据判断条件的成立与否再决定要执行那些语句的一种结构。
Java条件语句之 if
语法:
if(条件){
条件成立时执行的条件
}
注意:如果 if 条件成立时的执行语句只有一条,则可以省略大括号!
但如果执行语句有多条,那么大括号就是不可或缺的。
Java条件语句之 if…else
if…else 语句的操作比 if 语句多了一步: 当条件成立时,则执行 if 部分的代码块; 条件不成立时,则进入 else 部分。
语法:
if(条件的布尔表达式){
代码块一
}else{
代码块二
}
Java条件语句之多重 if
多重 if 语句,在条件 1 不满足的情况下,才会进行条件 2 的判断;当前面的条件均不成立时,才会执行 else 块内的代码。
语法:
if(条件一){
代码块一
}else if(条件二){
代码块二
}else{
代码块三
}
Java条件语句之 switch
当需要对选项进行等值判断时,使用 switch 语句更加简洁明了。
语法:
switch(表达式){
case 值1:
执行代码块1;
break; //跳出
case 值2:
执行代码块2;
break;
···
case 值n:
执行代码块n;
break;
default:
默认执行的代码
}
执行过程:当 switch 后表达式的值和 case 语句后的值相同时,从该位置开始向下执行,直到遇到 break 语句或者 switch 语句块结束;如果没有匹配的 case 语句则执行 default 块的代码。
Java条件语句之嵌套 if
嵌套 if 语句,只有当外层 if 的条件成立时,才会判断内层 if 的条件。
语法:
if(条件1为真){
if(条件2){
代码块
}else{
代码块
}
}else{ //条件一为假
代码块
}
6. 循环结构、循环嵌套
根据判断条件的成立与否,决定程序段落的执行次数,而这个程序段落就被称为循环主体。
Java循环语句之 while
语法:
while(判断条件){
循环操作
}
执行过程:
< 1 >、 判断 while 后面的条件是否成立( true / false )
< 2 >、 当条件成立时,执行循环内的操作代码 ,然后重复执行< 1 >、< 2 >, 直到循环条件不成立为止
特点:先判断,后执行
Java循环语句之 do…while
语法:
do{
循环操作
}while(判断条件);
执行过程:
<1>、 先执行一遍循环操作,然后判断循环条件是否成立
<2>、 如果条件成立,继续执行< 1 > 、< 2 >,直到循环条件不成立为止
特点: 先执行,后判断
由此可见,do…while 语句保证循环至少被执行一次!
Java循环语句之 for
语法:
for(循环变量初始化;循环条件;循环变量变化){
循环操作
}
执行过程:
<1>、 执行循环变量初始化部分,设置循环的初始状态,此部分在整个循环中只执行一次
<2>、 进行循环条件的判断,如果条件为 true ,则执行循环体内代码;如果为 false ,则直接退出循环
<3>、 执行循环变量变化部分,改变循环变量的值,以便进行下一次条件判断
<4>、 依次重新执行< 2 >、< 3 >、< 4 >,直到退出循环
特点:相比 while 和 do…while 语句结构更加简洁易读
Java循环语句之循环嵌套(多重循环)
循环体中包含循环语句的结构称为多重循环。三种循环语句可以自身嵌套,也可以相互嵌套,最常见的就是二重循环。在二重循环中,外层循环每执行一次,内层循环要执行一圈。
例如:最简单的冒泡排序算法
import java.util.Arrays;
public class BubbleSort {
public static void main(String[] args) {
int[] a ={1,3,46,32,235,21};
int[] sort = sort(a);
System.out.println(Arrays.toString(sort));
}
public static int[] sort(int[] b){
int temp = 0;
//for语句循环嵌套
for (int i = 0; i < b.length-1; i++) {
for (int j = 0; j < b.length - 1 - i; j++) {
if (b[j]<b[j+1]){
temp = b[j];
b[j] = b[j+1];
b[j+1] = temp;
}
}
}
return b;
}
}
7.break、continue
break | continue |
---|---|
break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用) | continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。 |
Java循环跳转语句之 break
在 Java 中,我们可以使用 break 语句退出指定的循环,直接执行循环后面的代码。
Java循环跳转语句之 continue
continue 的作用是跳过循环体中剩余的语句执行下一次循环。
例如,打印 1–10 之间所有的偶数,使用 continue 语句实现代码为:
for(int i=1;i<10;i++){
//判断i是否为奇数 若为奇数 则跳过该条语句输出,继续执行下一条循环
if(i%2!=0){
continue; //通过continue,结束本次循环,直接进行下一次循环
}
System.out.println("i");
}
运行结果
2
4
6
8
10