Java轻松入门基础(六)–流程控制
一、顺序结构
程序从上到下逐行执行,中间没有任何的判断和跳转。
二、分支结构
根据条件,选择性的执行某段代码。
有if…else和switch…case两种分支语句。
if…else三种结构:
结构一:
if(条件表达式){
执行表达式
}
//结构一
public class Test01 {
public static void main(String[] args) {
int a = 0;
int b = 1;
if (a == b){
System.out.println("a等于b");
}
System.out.println("a不等于b");
}
}
结构二:二选一
if(条件表达式){
执行表达式1
}else{
执行表达式2
}
//结构二
public class Test02 {
public static void main(String[] args) {
int a = 1;
int b = 2;
if (a == b){
System.out.println("a等于b");
}else{
System.out.println("a不等于b");
}
}
}
结构三:多选一
if(条件表达式){
执行表达式1
}else if(条件表达式){
执行表达式2
}else if(条件表达式){
执行表达式3
}
//结构三
public class Test03 {
public static void main(String[] args) {
int a = 0;
if (a == 1){
System.out.println("a等于1");
}else if(a == 2){
System.out.println("a等于2");
}else{
System.out.println("a既不等于1也不等于2");
}
}
}
switch结构:
switch(表达式){
case 常量1:
执行语句1;
//break;
case 常量2:
执行语句2;
//break;
…
default:(默认执行语句)
执行语句n;
//break;
}
1.① 根据switch表达式中的值,依次匹配各个case中的常量。一旦匹配成功,则进入相应case结构中,调用其执行语句。当调用完执行语句以后,则仍然继续向下执行其他case结构中的执行语句,直到遇到break关键字或此switch-case结构 末尾结束为止。
② break,可以使用在switch-case结构中,表示一旦执行到此关键字,就跳出switch-case结构。
③ switch结构中的表达式,只能是如下的6种数据类型之一:
‘’byte 、short、char、int、枚举类型(JDK5.0新增)、String类型(JDK7.0新增)
④ case 之后只能声明常量,不能声明范围。
⑤ break关键字是可选的。
⑥ default:相当于if-else结构中的else. default结构是可选的,而且位置是灵活的。
2.如果switch-case结构中的多个case的执行语句相同,则可以考虑进行合并。
3.break在switch-case中是可选的
int a = 1 ;
switch(a){
case 1:
System.out.println(“a的值是1”);
break;
case 2:
System.out.println(“a的值是2”);
break;
case 3:
System.out.println(“a的值是3”);
break;
case 4:
System.out.println(“a的值是4”);
break;
case 5:
System.out.println(“a的值是5”);
break;
default:
System.out.println(“没有匹配的值”);
}
三、循环结构
四要素:1.初始化条件;2.循环条件;3.循环体;4.迭代条件。
根据循环条件,重复执行某段的代码。
有while、do…while和for三种循环
注:有些JDK版本存在foreach循环,方便遍历集合、数组元素。
- for循环结构
for(语句一;语句二;语句四){
语句三;
}
执行过程:语句一 —> 语句二 —>语句三—>语句四 —> 语句二 —>语句三—> 语句四 —> …—>语句二
//输出十次Hello
for(int i=1;i<=10;i++){
System.out.println("Hello");
}
- while循环结构
语句一
while(语句二){
语句三;
语句四;
}
执行过程:语句一 —> 语句二 —>语句三—>语句四 —> 语句二 —>语句三—> 语句四 —> …—>语句二
说明:
写while循环千万小心不要丢了迭代条件。一旦丢了,就可能导致死循环!
int i=1;
while (i<=10){
System.out.println("Hello");
i++;
}
for和while循环总结:
(1). 开发中,基本上我们都会从for、while中进行选择,实现循环结构。
(2). for循环和while循环是可以相互转换的!
区别:for循环和while循环的初始化条件部分的作用范围不同。
(3). 我们写程序,要避免出现死循环。
- do-while循环结构
do-while循环在程序执行中最少执行一次,如下例:
语句一
do{
语句三;
语句四;
}while( 语句二 );
执行过程:语句一 —>语句三—>语句四 —> 语句二 —>语句三—> 语句四 —> …—>语句二
int i=1;
do{
System.out.println("Hello");
i++;
}while (i<0)
四、嵌套循环
1.嵌套循环:将一个循环结构A声明在另一个循环结构B的循环体中,就构成了嵌套循环
内层循环:循环结构A
外层循环:循环结构B
2.说明:
① 内层循环结构遍历一遍,只相当于外层循环循环体执行了一次。
② 假设外层循环需要执行m次,内层循环需要执行n次。此时内层循环的循环体一共执行了m * n次
③ 外层循环控制行数,内层循环控制列数
典型例题(九九乘法表):
public class Test01 {
public static void main(String []args) {
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+i*j+" ");
}
System.out.println();
}
}
}
五、break和continue使用情况
六、Scanner类的使用
如何从键盘获取不同类型的变量:需要使用Scanner类
具体实现步骤:
1.导包:import java.util.Scanner;
2.Scanner的实例化:Scanner scan = new Scanner(System.in);
3.调用Scanner类的相关方法(next() / nextXxx()),来获取指定类型的变量
//1.导包
import java.util.Scanner;
class ScannerTest{
public static void main(String[] args){
//2.Scanner的实例化
Scanner scan = new Scanner(System.in);
//3.调用Scanner类的相关方法
System.out.println("请输入你的姓名:");
String name = scan.next();
System.out.println(name);
System.out.println("请输入你的年龄:");
int age = scan.nextInt();
System.out.println(age);
}
}