流程控制语句
程序员文章站
2023-12-25 23:28:09
...
一、顺序结构
顺序结构:是程序中最简单的基本流程控制,没有特定的语法结构,按照先后顺序,依次执行。总的来说就是前面的先执行,后面的后执行。
二、分支结构
- if语句(单分支)
if(条件表达式){
执行语句;
}
- 注:表达式的结果是一个布尔值,如果是true,直接进入if的方法体中,如果结果为false,则跳过if的方法体,继续执行。
- if....else 语句(双分支)
if(表达式){
语句组1
}
else {
语句组2
}
- 注: 双分支结构else必须与if 配对使用,若else空缺则构成单分支结构
- if...else if 语句(多分支)
if(表达式1){
语句组1
}
else if(表达式2) {
语句组2
}
else if (表达式3) {
语句组3
}
.......
else if (表达式n) {
语句组n
}
else { //可以省略
语句组n+1
}
三、选择结构
switch语句
switch(表达式){
case 值1:
执行语句1;
break; // switch的表达式 只能是 byte、short、int、char;
case 值2: // case的语句是无序的;case 的值同时加载到内存中;
执行语句2; // 找到对应的case值作为程序入口,使用break语句来作为结束;
break;
……
default:
执行语句;
break;(可以省略)
}
- 注:
1,switch语句中不能忘记break,否则会有贯穿现象。
2,switch的应用有所限制,其表达式只能应用于byte,short,int,char
-
if语句和switch语句的异同点:
if: 1、对具体的值进行判断; 2、对区间进行判断; 3、对运算结果是boolean类型的表达式进行判断; switch: 1、对具体的值进行判断; 2、值的个数必须是有限的;
三、循环语句
1.while语句
while(条件表达式){
循环语句;
}
- do....while语句
do{
循环语句;
}while(条件表达式);
- do..while 语句的特点:无论条件是否满足,都会执行至少一次;
- for语句
for(初始化表达式;条件表达式;循环后表达式){
循环语句;
}
for循环的执行顺序:首先执行初始化表达式,判断循环条件,如果条件返回值为true,执行循环语句,然后执行循环后表达式,再次判断循环条件
for循环与while循环的关系:
1、for与while可以互换;
2、for循环可以将变量定义到初始化表达式中,如只需要将该变量应用在循环体中,建议使用for循环,可以及时释放内存空间;循环需要注意的情况:
1、需要有循环的条件;
2、需要控制循环的次数;
否则就会变成无限循环(无限占用内存):
while(true){
循环语句;
}
或
for( ;;){
循环语句;
}
- 终止循环:
(1)break
- 注:1、break必须使用在switch或者循环语句中;
2、在switch或循环语句中,break单独使用时,下面不允许有代码语
句;
3、默认情况下,break只能跳出语句所属的最近一层循环;
(2) continue;
注:continue是终止本次循环(只能在循环内部),继续下一次循环;
-
如果想要指定循环跳出的位置,可以使用给循环添加标记的方式,跳出时指明跳出位置即可;
flag1:(over) for( ;;){ 循环语句; break flag1(over); }
- foreach语句
Java5引入了一种主要用于数组的增强型for循环,进行数组的遍历。
for (声明语句 : 表达式) {
//代码句子
}
声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。
表达式:表达式是要访问的数组名,或者是返回值为数组的方法。
四、练习
//1.编写一个程序,读取用户输入的3个非零数据,判断并输出这3个值是否能组成一个三角形的3条边。
package excise;
import java.util.Scanner;
public class practice1 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("请输入三个非零数:\n");
System.out.printf("a= ");
double a = s.nextDouble();
System.out.printf("b= ");
double b = s.nextDouble();
System.out.printf("c= ");
double c = s.nextDouble();
if (a+b>c & a+c>b & b+c>a) {
System.out.println("能组成一个三角形");
}
else
System.out.println("不能组成一个三角形");
}
}
//2.用switch语句编写一个完成两个整数四则运算的程序
package excise;
import java.util.Scanner;
public class practice2 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("请输入运算符:");
String operato = s.nextLine();
System.out.println("请输入两个整数:");
System.out.printf("a=");
int a = s.nextInt();
System.out.printf("b=");
int b = s.nextInt();
switch(operato) {
case "+":
System.out.println(a + operato + b +"=" +(a+b));
break;
case "-":
System.out.println(a + operato + b +"=" +(a-b));
break;
case "*":
System.out.println(a + operato + b +"=" +(a*b));
break;
case "/":
System.out.println(a + operato + b +"=" +(a/b));
break;
default:
System.out.println("您输入的运算符有误");
}
}
}