Java流程控制
内容概要:
1. 用户交互Scanner
2. 顺序结构
3. 选择结构
4. 循环结构
用户交互Scanner
可以通过Scanner类来获取用户的输入。
基本语法:
Scanner s = new Scanner(System.in);
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。
- next():以空格或回车为结束符。
- nextLine():以回车为结束符。
顺序结构
Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。
顺序结构是最简单的算法结构。
语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。
选择结构
- if单选择结构
1 // 语法
2 if (flag) {
3 // flag为true
4 }
- if双选择结构
1 // 语法
2 if (flag) {
3 // flag为true
4 } else {
5 // flag为false
6 }
- if多选择结构
1 // 语法
2 if (flag1) {
3 // flag1为true
4 } else if(flag2) {
5 // flag2为true
6 } else if(flag3) {
7 // flag3为true
8 } else {
9 // 以上都不为true
10 }
- 嵌套的if结构
1 // 语法
2 if (flag) {
3 // flag为true
4 if(flag2) {
5 // flag2为true
6 }
7 }
- switch多选择结构
1 // 语法
2 switch (expression) {
3 case value : // 语句
4 break;//可选
5 case value : // 语句
6 break;//可选
7 // 可以有任意数量的case语句
8 default : //可选
9 // 语句
10 }
switch语句中的变量类型可以是:
- byte,short,int,char
- 从Java SE 7开始,switch支持字符串String类型了,同时case标签必须为字符串常量或字面量。
注意:default语句最好放到最后,如果放在前面则需要加上break,不然会继续往下执行。
1 // 在该情况下,如果写break则正常输出-1,
2 // 如果不写break则输出-1和1,输出错误。
3 int a= 11;
4 switch (a) {
5 default:
6 System.out.println(-1);
7 //break;
8 case 1:
9 System.out.println(1);
10 break;
11 case 5:
12 System.out.println(5);
13 break;
14 case 10:
15 System.out.println(10);
16 break;
17 }
循环结构
- while循环
1 // 语法
2 while (布尔表达式) {
3 // 循环内容
4 }
- do...while循环
1 // 语法
2 do {
3 // 代码语句
4 } while(布尔表达式);
do...while循环和while循环相似,不同的是,do...while循环至少会执行一次。
do...while循环和while循环区别:
1. while先判断后执行,do...while先执行后判断。
2. do...while循环保证循环体至少会执行一次,这是他们的主要差别。
- for循环
1 // 语法
2 for (初始化;布尔表达式;更新) {
3 // 代码语句
4 }
5
6 // 死循环
7 for(;;){
8 // 代码语句
9 }
for循环是支持迭代的一种通用结构,是最有效、最灵活的循环结构。
for循环执行的次数是在执行前就确定的。
- java5引入一种主要用于数组的增强for循环
1 // 语法
2 for (声明语句:表达式) {
3 // 代码语句
4 }
5
6 // 例子
7 int[] numbers = {10,20,30,40,50}; // 定义一个数组
8 for (int x : numbers) {
9 System.out.println(x);
10 }
- break、continue
break用于强行退出整个循环,不执行循环中剩余的语句。用于循环语句和switch语句中。
continue用于终止某次循环过程,继续执行下一次循环判定。只用在循环语句中。