Java流程控制语句
hacker707 人气:2顺序语句
顺序顾名思义就是程序自上而下执行
public class User { public static void main(String[] args) { String name = "hacker"; int age = 18; String happy = "学习Java"; System.out.println("姓名:"+name); System.out.println("年龄:"+age); System.out.println("爱好:"+happy); } }
运行结果如下:
选择语句
if else
if (表达式){
语句块1
}
else{
语句块2
}
先判断表达式,当表达式的值为true时,执行语句块1,否则,执行语句块2
举个栗子
从控制台输入成绩,如果成绩大于或等于60,输出成绩及格,否则输出成绩不及格
import java.util.Scanner; public class User { public static void main(String[] args) { var sc = new Scanner(System.in); System.out.print("请输入成绩:"); float score = sc.nextFloat(); if(score>=60){//如果成绩>=60,成绩及格 System.out.printf("成绩及格:%3.1f", score); } else {//否则成绩不及格 System.out.printf("成绩不及格:%3.1f", score); } } }
运行结果如下:
if else的嵌套
需要对多个条件进行判断就需要用到if else的嵌套
基本格式如下:
if (表达式1){
语句块1
}else if(表达式2){
语句块2
}
else{
语句块3
}
先判断表达式1,当表达式1成立执行语句块1,不成立判断表达式2,若表达式2成立执行语句块2,不成立执行语句块3
举个栗子
从控制台输入成绩,成绩小于60时成绩不及格,当成绩在60~90之间时成绩及格,当成绩大于90时成绩优秀
import java.util.Scanner; public class User { public static void main(String[] args) { var sc = new Scanner(System.in);// System.out.print("请输入成绩:"); float score = sc.nextFloat(); if(score<60){//如果成绩<60,成绩不及格 System.out.printf("成绩不及格:%3.1f", score); }else if(score>=60&&score<90){//如果60<=score<90,成绩及格 System.out.printf("成绩及格:%3.1f", score); } else {//否则成绩优秀 System.out.printf("成绩优秀:%3.1f", score); } } }
运行结果如下:
switch case default
先判断switch后面括号里表达式的值,然后拿着值去匹配case语句,若匹配到了执行case语句对应的语句块。执行后若遇到break则退出switch语句,如果没有break则继续执行下面的case语句块,直到遇到break退出switch语句
switch(表达式)
{
case 值1:语句块1:break;
case 值2:语句块2:break;
case 值3:语句块3:break;
default:语句块4
import java.util.Scanner; public class User { public static void main(String[] args) { var sc = new Scanner(System.in); System.out.print("输入1,2,3中其一数字:"); int number = sc.nextInt(); switch(number) { case 1: System.out.print("hello"); break; case 2: System.out.print("Java"); break; case 3: System.out.print("world"); default: System.out.print("输入有误,请重新输入"); } } }
运行结果如下:
循环语句
for
for(表达式1;表达式2;表达式3)
{循环体}
表达式1的值给循环变量赋初始值;表达式2是判断条件,表达式3是改变循环变量的值
执行过程如下:
先计算表达式1的值,再计算表达式2的值。若为真执行循环体,若为假,直接跳出循环,然后计算表达式3的值;再次计算表达式2的值,若为真,再执行循环体,再计算表达式3的值,直到表达式2的值为假,循环结束,执行循环下面的语句
举个栗子
循环打印出1到10
public class User { public static void main(String[] args) { for (int i = 1; i <= 10; i++) { System.out.println(i); } } }
运行结果如下:
for in
从数组中挨个取值
public class User { public static void main(String[] args) { int[] a = {1, 2, 3, 4, 5, 6}; for (int i : a) { System.out.println(i); } } }
运行结果如下:
while
while(表达式){
循环体
}
public class User { public static void main(String[] args) { int i = 0; while (i < 10) { i++; System.out.println(i); } } }
运行结果如下:
do while
do while和while的区别
do while会先执行循环体再判断条件,while先判断条件再执行循环体
do while最少执行一次,while可以一次都不执行
do{循环体} while(表达式)
public class User { public static void main(String[] args) { int i = 0; do {//先执行循环体,即使i++不满足条件也会执行 i++; System.out.print(i); } while (i < 0); } }
运行结果如下:
break continue
break 终止循环
continue 跳出当前循环,进入下一次循环
public class User { public static void main(String[] args) { for (int i = 0;i <= 10;i++){ if( i == 2){ break; //break当i=2时直接终止循环 } System.out.println(i); } } }
当循环到i=2时遇到break直接终止循环,不继续执行
运行结果如下:
0
1
public class User { public static void main(String[] args) { for (int i = 0;i <= 10;i++){ if( i == 2){ continue; //continue当i=2时跳出本次循环,进入下一次循环(不打印2) } System.out.println(i); } } }
当循环到i=2时遇到continue跳过本次循环继续下一轮循环(i=2不执行)
继续执行下面的循环直到for语句条件不满足终止循环
运行结果如下:
0
1
3
4
5
6
7
8
9
10
加载全部内容