一、顺序结构
语句与语句之间按照从上到下,从左往右的顺序依次执行,他是最基本的算法结构。
二、选择结构
1.单分支
if (布尔表达式) {
语句;
}
2.双分支
当指定条件为true时单分支if语句执行一个操作。而当条件为false时什么也不干。但是,如果你希望在条件为false时也能执行一些动作,那就用这个。
==if (布尔表达式) {
布尔表达式为真时执行的语句;
} else { 布尔表达式为假时执行的语句;
}==
3.多分支
if () {
} else if () {
} else if () {
} ...
[else {
}]
健康计划
用户输入身高(m),体重(kg)
计算公式:BMI =身高/ 体重^2
BMI < 18.5:过轻
18.5≤ BMI <24:正常
24 ≤ BMI <27:过重
27 ≤ BMI < 30:轻度肥胖
30 ≤ BMI < 35:中度肥胖
BMI ≥ 35:重度肥胖
import java.util.Scanner;
public class ComputeAndInterpretBMI {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter weight in pounds: ");
double weight = input.nextDouble();
System.out.print("Enter height in inches: ");
double height = input.nextDouble();
final double KILOGRAMS_PER_POUND = 0.45359237;
final double METERS_PER_INCH = 0.0254;
double weightInKilograms = weight * KILOGRAMS_PER_POUND;
double heightInMeters = height * METERS_PER_INCH;
double bmi = weightInKilograms / (heightInMeters * heightInMeters); System.out.println("BMI is " + bmi);
if (bmi < 18.5){
System.out.println("Underweight");
} else if {(bmi < 25) System.out.println("Normal");
} else if {(bmi < 30) System.out.println("Overweight");
}else{
System.out.println("Obese");
}
} }
4.switch分支语句
switch (switch表达式) {
case 值1 :
语句1;
break;
case 值2 :
语句2;
break;
...
case 值N :
语句N;
break;
default :
默认情况下执行的语句;
}
switch语句遵从下述规则
- switch表达式必须能计算出一个char、byte、short、int或者String型值,并且必须总是要用括
号括住。 - 值1、值2、…、值N必须与switch表达式的值具有相同的数据类型,且是确切的值不能是变
量。 - 当switch表达式的值与case语句的值相匹配时,执行从该case开始的语句,直到遇到一个
break语句或到达该switch语句的结束。 - 默认是可选的,当没有一个给出的case与switch表达式匹配时,用来执行该操作。
- 关键字break是可选的。break语句会立即终止switch语句。
三、循环
1.for循环
for (初始化; 继续条件; 迭代) {
循环体语句;
}
示例学习:打印矩阵
public class PrintRectangle {
public static void main(String[] args) {
/*
*******
*******
*******
*******
******* */
for (int line = 1; line <= 4; line++) {
for (int i = 1; i <= 8; i++) {
System.out.print("*");
}
System.out.println();
}
} };
2.while循环
while语法结构:
循环初始化
while (循环继续条件) {
循环体语句;
循环迭代;
}
示例学习:预测未来学费
假设某大学今年学费是10000美元,而且以每年7%的速度增加。多少年之后学费会翻倍?
public class FutureTuition {
public static void main(String[] args) {
double tuition = 10000;
int year = 1;
while (tuition < 20000) {
tuition = tuition * 1.07;
year++;
}
System.out.println("Tuition will be doubled in " + year + "
years");
} }
3.do while循环
do {
// 循环体
} while(条件);
示例
int i = 1;
int sum = 0;
do {
sum += i++;
// sum = sum + i;
// i = i + 1;
} while (i <= 10);
4.break、continue关键字
break:终止循环
continue:跳过本次循环,执行下次循环
break是终止循环,即在程序中遇到break,那么break所属的循环将结束。
for (int x=0; x<3 ;x++ ) {
if(x==1) break;
System.out.println("x="+x);
}
continue是结束本次循环,继续下次循环。循环是不会结束的。
for (int x=0; x<10 ;x++ ) {
if(x%2==0) continue;
System.out.println("x="+x);
}
注:
1.若这两个语句离开应用范围,存在是没有意义的。
2.这个两个语句单独存在后面都不能有语句,因为执行不到。
3.continue语句是跳过本次循环,继续下次循环。
4.标签的出现,可以让这两个语句作用于指定的循环==