JavaSE-05流程控制
顺序控制
程序从上到下逐行执行,中间没有判断和跳转。
public class Hello{
//main方法
public static void main(String[] args){
int n1 = 10;
int n2 = n1+1;
}
}
//错误的顺序
public class Hello{
//main方法
public static void main(String[] args){
int n2 = n1+1;
int n1 = 10;
}
}
分支控制
if语句
if(条件:布尔类型的数据,可以是表达式,也可以用逻辑运算符){ //如果条件为 true,执行语句 };
条件为ture,进入代码执行模块。
if..else语句
if(条件表达式){ //满足条件执行的语句 } else { //不满足条件的执行语句 } ;
条件为ture,进入满足条件的代码执行模块,条件为false,进入不满足条件的代码执行模块。
if..else if .. else语句
if(条件表达式){ //满足条件 1 的执行语句 } else if(条件表达式){ //可以有多个 else if 块 //满足条件 2 的执行语句 } else { //不满足条件的执行语句 } ;
多个条件的代码模块,满足任一条件进入相应的代码执行模块,执行完毕后跳出此结构,全部不满足进入else对应的代码模块。
执行一个匹配条件后直接跳出if代码块 ,不会执行下一个匹配条件
public class IfDemo{
//main方法
public static void main(String[] args){
int month = 1;
int age = 20;
if(4 <= month && month<= 10){
if(18 <= age && age <= 60 ){
System.out.println("60元");
}else if (18 < age){
System.out.println("30元");
}else if(age > 60){
System.out.println("30元");
}
}else{
if(age >= 18){
System.out.println("40元");
}else{
System.out.println("20元");
}
}
}
}
switch
switch(数据:byte、short、int、char、字符串、枚举)
{
case 数据:{//执行语句; break;
case 数据:{//执行语句}; break;
……
default: {//执行语句; break;
}
/*
1.表达式的数据类型和case后的常量类型一致,或者是可以自动转换成和case的常量类型相互比较的类型
2.表达式的类型必须是:byte,short,int,char,enum,String
3.case中的值必须是常量
4.default是可选的,如果没有default,也没case入口,跳出Switch
5.break; 遇到跳出Switch,如果没有程序就顺序执行到Switch结尾
*/
import java.util.Scanner;
public class SwitchExercise{
//main方法
public static void main(String[] args){
Scanner myScanner = new Scanner(System.in);
//转换大写
System.out.println("请输入一个字符(a-e)");
char c1 = myScanner.next().charAt(0);
switch(c1){
case 'a':
System.out.println("A");
break;
case 'b':
System.out.println("B");
break;
case 'c':
System.out.println("C");
break;
case 'd':
System.out.println("D");
break;
case 'e':
System.out.println("E");
break;
default:
System.out.println("other");
}
//成绩60以上合格
System.out.println("请输入一个成绩");
double score = myScanner.nextDouble();
if(score >= 0 && score <= 100){
switch((int)(score / 60)){
case 0:
System.out.println("不合格");
break;
case 1:
System.out.println("合格");
break;
}
}else{
System.out.println("输入有误");
}
//打印四季
System.out.println("请输入一个月份");
int month = myScanner.nextInt();
switch (month){
case 3:
case 4:
case 5:
System.out.println("春");
break;
case 6:
case 7:
case 8:
System.out.println("夏");
break;
case 9:
case 10:
case 11:
System.out.println("秋");
break;
case 1:
case 2:
case 12:
System.out.println("冬");
break;
default:
System.out.println("月份有误");
}
}
}
选择
1.如果判断具体数值不多,表达式的类型是byte,short,int,char,enum,String,建议使用switch
2.对于区间判断,对结果为boolean类型判断,使用if
循环控制
for
for (初始化语句; 判断条件; 控制条件) {
// 循环体
}
1、for循环开始,会首先执行初始化语句,完成所需数据的定义和初始化;
2、紧接着执行判断条件,此时,判断条件有可能成立,也有可能不成立:
3、如果条件不成立(判断条件返回false):循环立即结束;
4、反之,如果条件成立(判断条件返回true):执行循环体,这时,会把循环体中所有代码执行一遍,然后,执行控制条件,到此为止,第一次循环执行结束,打印了信息;
5、for循环并没有终止执行,接下来,它继续执行判断条件,检查循环继续执行的条件是否成立,同样的:如果条件不成立(判断条件返回false):循环立即结束;
6、反之,如果条件成立(判断条件返回true):执行循环体,这时,会把循环体中所有代码再执行一遍,然后,再执行控制条件,到此为止,第二次循环执行结束,再一次打印信息;
7、就这样一直重复下去,直到判断条件不成立,循环结束。
//1到100求和
public class Main {
public static void main(String[] args) {
int sum = 0;
for (int i=1; i<=100; i++) {
sum = sum + i;
}
System.out.println(sum);
}
}
多重循环
/*
求 1+(1+2)+(1+2+3)+...+(1+2..100)的和
*/
public class HomeWork08{
public static void main(String[] args){
int sum = 0;
for(int i = 1;i <= 100;i++){
for(int j = 1; j <= i; j++){
sum += j;
}
}
System.out.println(sum);
}
}
多层循环,最外层的循环执行一次,内循环执行一轮。
while
while (条件表达式) {
循环语句;
}
// 继续执行后续代码
while
循环在每次循环开始前,首先判断条件是否成立。如果计算结果为true
,就把循环体内的语句执行一遍,如果计算结果为false
,那就直接跳到while
循环的末尾,继续往下执行。
public class Main {
public static void main(String[] args) {
int sum = 0; // 累加的和,初始化为0
int n = 1;
while (n <= 100) { // 循环条件是n <= 100
sum = sum + n; // 把n累加到sum中
n ++; // n自身加1
}
System.out.println(sum); // 5050
}
}
Do..while
do {
执行循环语句;
} while (条件表达式);
do while
循环会至少循环一次,do while
循环则是先执行循环,再判断条件,条件满足时继续循环,条件不满足时退出。
public class Main {
public static void main(String[] args) {
int sum = 0;
int n = 1;
do {
sum = sum + n;
n ++;
} while (n <= 100);
System.out.println(sum);
}
}
流程控制几个关键字
break:使用break语句跳出当前循环。也就是整个循环都不会执行了。
continue:提前结束本次循环,直接继续执行下次循环。
return:跳出所在方法
本文来自博客园,作者:九天揽月丶,转载请注明原文链接:https://www.cnblogs.com/-meditation-/articles/16302444.html