1、选择结构
根据条件判断,选择执行相应的语句
1.1 基本的if选择结构
语法:
//条件为真时才会执行语句
if(条件) {
执行语句
}
import java.util.Scanner;
public class HelloWord {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("输出张晓的Java成绩:");
int score = input.nextInt();
if (score>98){
System.out.println("老师说:真不错,");
}
}
}
1.2 if-else选择结构
语法:
if(条件) {
//条件为真时才会执行语句
}else{
//条件为假时才会执行语句
}
import java.util.Scanner;
public class HelloWord {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("输出张晓的Java成绩:");
//从控制台获取张晓的Java成绩
int score = input.nextInt();
//判断是否大于98分
if (score>98){
System.out.println("老师说:真不错,");
}else{
System.out.println("老师说:继续努力");
}
}
}
1.3 多重if选择结构
语法:
if(条件1){
//条件1成立执行的语句
}else if(条件2){
//条件2成立执行的语句
}else if(条件n){
//条件n成立执行的语句
}else{
//所有条件不成立执行的语句
}
import java.util.Scanner;
public class HelloWord {
public static void main(String[] args) {
int score=78;//考试成绩
if (score>=90){
System.out.println("优");
}else if (score>=75){
System.out.println("良好");
}else if (score<60){
System.out.println("中等");
}else {
System.out.println("不及格");
}
}
}
1.4 嵌套if选择结构
语法:
if(条件1){
if(条件2){
//代码1
}else{
//代码2
}
}else{
//代码3
}
注:
1)三种if结构都可以相互嵌套
2)嵌套最好不要超过三层
import java.util.Scanner;
public class HelloWord {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("输出比赛成绩:");
double score = input.nextDouble();
System.out.println("请输入性别:");
String gender = input.next();
if (score<=10){
if (gender.equals("男")){
System.out.println("男子组进入决赛");
}else if (gender.equals("女")){
System.out.println("女子组进入决赛");
}
}else {
System.out.println("淘汰");
}
}
}
1.5 switch条件选择结构
1.switch 表达式的类型:int byte char short 枚举 String
2.break 必须要有;
3.等值判断
4.语法:
switch(表达式){
case 值1:
语句1;
break;
case 值2:
语句2;
break;
case 值n:
语句n;
break;
default :
语句
import java.util.Scanner;
public class HelloWord {
public static void main(String[] args) {
//声明变量score,并赋值C
char score = 'c';
//执行switch分支语句
switch (score){
case 'a':
System.out.println("优");
break;
case 'b':
System.out.println("良好");
break;
case 'c':
System.out.println("中等");
break;
case 'd':
System.out.println("差");
break;
default:
System.out.println("成绩输入错误");
}
}
}
1.6 总结,使用场景
1.简单的if 结构: 处理单一或组合条件
2.if-else 结构: 简单的分支结构
3.多重if选择结构: 复杂分支结构
4.switch选择结构: 等值情况
5.嵌套选择结构:复杂使用嵌套
2、循环结构
指事务周而复始的运动变化
2.1 循环结构四要素
循环初始化:一条或多条语句,这些语句完成一些初始化操作,让循环开始执行
循环继续条件:控制循环是否继续或结束
循环体:需要被循环执行的代码
循环步长(周期,间距):当前循环和下一次循环之间的差量
为什么要使用循环语句:
为了执行代码中的重复步骤,减少代码冗余,使代码简洁明了
循环语句特点:
1、循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码
2、被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false
结束循环,否则将一直循环下去,形成死循环 。
2.2 while循环
语法:
初始化
while(Boolean表达式){
循环体长(被执行的操作)
}
注:while循环中一定要把初始化放在循环之外,否则每当执行一次循环,
就会初始化一个变量,占用空间。
import java.util.Scanner;
public class HelloWord {
public static void main(String[] args) {
//循环初始条件
int age=0;
//当age小于或等于100时执行循环体
while (age<=100){
System.out.println("马上开心");
//迭代
age++;
}
System.out.println("over");
}
}
2.3 do-while循环
语法:
初始化
do{
循环体
}while(判断条件)
注:循环体在判断循环条件之前无条件执行一次
执行过程:
从初始化开始,顺序执行,在while的判断条件中进行判断选择,
(如果结果为true,继续执行循环体,否则跳出循环)
import java.util.Scanner;
public class HelloWord {
public static void main(String[] args) {
//定义变量age
int age=1;
//执行do-while循环
do {
System.out.println("马上开心");
//循环迭代
age++;
//循环条件紧跟while关键字
}while(age<=30);
}
}
2.4 for循环
语法:
for(初始化;布尔表达式;更新){
代码块
}
注:1.for循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构
2.for循环执行的次数在执行前就确定了
3.最先执行初始化步骤,可以声明一种类型,但可初始化一个或多个循环控制变量
也可以是空语句,然后检测布尔表达式的值,如果为true循环体被执行,如果为false,循环
终止,开始执行循环体后面的语句,执行一次循环后,更新循环控制变量(迭代因子控制循环变量的增减)
再次检测布尔表达,式再次执行上面的过程
import java.util.Scanner;
public class HelloWord {
public static void main(String[] args) {
// 初始化 条件判断 迭代
for (int i = 1; i <= 100; i++) {
System.out.println(i);
}
System.out.println("for循环结束");
}
}
2.5 break的使用
用于完全结束一个循环
用法:
for(初始化;条件判断;步长){
语句体1;
语句体2;
break;
语句n;}
直接跳出循环,不执行break后面的语句
public class HelloWord {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println("i的值是"+i);
if(i==2){
//执行该语句时将结束循环
break;//i的值是0;i的值是1;i的值是2
}
}
}
}
2.6 continue的使用
用法:
public class HelloWord {
public static void main(String[] args) {
for (int i = 0; i < 3; i++) {
System.out.println("i的值是"+i);
if(i==1){
//略过本次循环剩下的语句
continue;
}
System.out.println("continue后的输出语句");//i的值是0;continue后的输出语句;
//i的值是1;i的值是2;continue后的输出语句
}
}
}
注:continue只是终止本次循环,接着开始下次循环