Java技术之流程控制
块作用域
- 块(即复合语句):是指一对大括号括起来的若干条简单的Java语句.
- 块确定了变量的作用域
- 一个块可以嵌套在另一个块中
int n;
...
{
int k;
...
}//k仅作用域为块中
int n;
...
public static void main(String[] args) {
int k;
int n;//错误,不能两个块中声明相同的变量名
...
}
条件语句
//单条语句
if(condition)statement
//多条语句
if(condition)
{
statement1;
statement2;
...
}
if(condition) statement1 else statement2
使用块(有时候称为复合语句)可以在Java程序结构中原本只能放置一条(简单)语句的地方放置多条语句
public static void main(String[] args) {
int a = 10;
int b = 20;
if (a > b) {
System.out.println("a>b");
} else if (a < b) {
System.out.println("a<b");
} else {
System.out.println("a=b");
}
}
循环
while(condition) statement
do statement while(condition)
public static void main(String[] args) {
//1,2,3,4...100
int i = 1;
boolean is = true;
while (is) {
if (i == 100) {
System.out.println(i++);
is = false;
} else {
System.out.println(i++);
}
}
System.out.println("---------------------------------");
i = 1;
is = true;
do {
if (i == 100) {
System.out.println(i++);
is = false;
} else {
System.out.println(i++);
}
} while (is);
}
确定循环
for循环语句是支持迭代的一种通用结构,利用每次迭代之后更新的计数器或类似的变量来控制迭代次数
public static void main(String[] args) {
//1,2,3,4...100
for (int j = 1; j <= 100; j++) {
System.out.println(j);
}
}
多重选择:switch语句
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入今天是星期几?");
int nextInt = scanner.nextInt();
switch (nextInt) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("输入错误,范围只能1-7");
}
System.out.println("----------------------------------");
//如果不输入break,那么其和其后的语句都会被执行
//所以一定要注意,合理使用break
switch (nextInt) {
case 1:
System.out.println("星期一");
case 2:
System.out.println("星期二");
case 3:
System.out.println("星期三");//例如输入3,结果却是后续语句全给执行了 星期三,星期四,星期五,星期六,星期日,输入错误,范围只能1-7
case 4:
System.out.println("星期四");
case 5:
System.out.println("星期五");
case 6:
System.out.println("星期六");
case 7:
System.out.println("星期日");
default:
System.out.println("输入错误,范围只能1-7");
}
}
中断流程控制语句
break;语句和countinue语句
以下例子可以对比两个关键字的区别
public static void main(String[] args) {
for (int i = 0; i < 100; i++) {
if (i == 10) {
System.out.println("跳过了10,但不影响程序的运行");
continue;
} else {
System.out.println(i);
}
//当continue后不会执行以下语句
if (i == 30) {
break;//30就结束循环
}
}
}
不过即使逻辑中不包含break;语句和countinue语句,也是可以实现完整的逻辑的,这两个是可选的