Java 总结第一弹

Java 基础 (二)

2.流程控制语句

流程控制语句分为:顺序结构、选择结构、循环结构

2.1 顺序结构

顺序结构即代码按照从上往下的顺序依次执行

2.2 选择结构
2.2.1 if
/*
 * if语句第一种:
 *     if (关系表达式) {
 *        语句体;    
 *     }
 * 
 * 执行流程:
 *    1.计算关系表达式的值
 *    2.若结果是true则执行语句体
 *    3.若结果是flase则不执行语句体
 * 
 */
int a = 10;
int b = 10;
if (a > b) {
    System.out.println("a大于b");
}

System.out.println("...........");

if (a == b) {
    System.out.println("a等于b");
}
2.2.2 if-else
/*
 * if语句第二种:
 *		if (关系表达式) {
 *			语句体1; 
 *		} else {
 *			语句体2;
 *		}
 *     
 * 执行流程:
 *		1.计算关系表达式的值
 *		2.若结果是true则执行语句体1
 *		3.若结果是flase则执行语句体2
 * 
 */
int year = 2020;
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) {
    System.out.println("闰年");
} else {
    System.out.println("普通年份");
}

/**
*
*	如果执行语句比较简单的话,可以使用三元运算符来代替 if-else 语句
*	如果条件为 true,返回 ? 后面 : 前面的值;如果条件为 false,返回 : 后面的值
*
*/
int num = 13;
String result = (num % 2 == 0) ? "偶数" : "奇数";
System.out.println(result);
2.2.3 if-else if-else
/*
 * if语句第二种:
 *		if (关系表达式1) {
 *			语句体1; 
 *		}
 *		else if (关系表达式2) {
 *			语句体2;
 *		}
 *		......
 *		else {
 *			语句体n;
 *		}
 *     
 * 执行流程:
 *		1.计算关系表达式1的值
 *		2.若结果是true,则执行语句体1
 *		3.若结果是flase,则计算关系表达式2的值
 *		4.若结果是true,则执行语句体2
 *		5.若结果是flase,则继续关系表达式
 *		6.直到前面所有关系表达式结果都为false,则执行语句n
 * 
 */
int a = 10;
int b = 10;
if (a > b) {
    System.out.println("a大于b");
} else if (a == b) {
    System.out.println("a等于b");
} else {
    System.out.println("a小于b");
}
2.2.4 switch
/*	switch语句格式:
 *  switch(表达式) {
 *  	case 值1:
 *				语句体1;
 *				break;
 *		case 值2:
 *				语句体1;
 *				break;
 *		......
 *		default:
 *				语句体n+1;
 *				break;
 *	}
 * 
 *	注:表达式只可以是 byte, short, int, char 或者对应的包装器类型 Byte、Short、Integer、Long
 *		JDK5以后可以是枚举,JDK7以后可以是字符串
 * 
 * 执行流程:
 *		1.计算表达式的值
 *		2.将得到的值依次与 case 后的值进行匹配,一旦匹配成功则执行相应的语句体,遇到 break 则结束
 *		3.若是都不匹配,则执行语句体 n+1 ,遇到 break 则结束
 *
 */
switch(a) {
    case 1:
        System.out.println("匹配值1成功");
        break;
    case 2:
        System.out.println("匹配值2成功");
        break;
    case 3:
        System.out.println("匹配值3成功");
        break;
    default:
        System.out.println("未匹配值");
        break;
}
/**
*	变量可以有 1 个或者 N 个值
*	值类型必须和变量类型是一致的,并且值是确定的
*	值必须是唯一的,不能重复,否则编译会出错
*	break 关键字是可选的,如果没有,则执行下一个 case,如果有,则跳出 switch 语句
*	default 关键字也是可选的
*
*/

// 枚举
public class SwitchEnumDemo {
    public enum FruitTypes {
        APPLE,
        STRAWBERR,
        BANANA,
        PINEAPPLE,
        UNKNOWN
    }
    private static String eatFruit(FruitTypes fruit) {
        switch (fruit) {
            case APPLE:
                return "苹果";
            case STRAWBERR:
                return "草莓";
            case BANANA:
                return "香蕉";
            case PINEAPPLE:
                return "菠萝";
            case UNKNOWN:
                throw new IllegalArgumentException("未知");
            default:
                throw new IllegalArgumentException("水果类型: " + fruit);
        }
    }

    public static void main(String[] args) {
        System.out.println("我喜欢吃" + eatFruit(FruitTypes.PINEAPPLE));
    }
}
2.3 循环结构
2.3.1 普通for
/*
 * for循环语句的格式:
 *	for(初始化语句;判断条件语句;控制条件语句){
 *		循环体语句;
 *	}
 * 
 *	执行流程:
 *		1.执行初始化语句
 *		2.执行判断条件语句
 *		3.为 true 执行循环体语句,然后继续执行4,5;为 false 则跳出循环
 *		4.执行控制条件语句(自增/自减)
 *		5.回到2继续执行判断条件语句,直至其结果为 false 跳出循环
 * 
 */
int sum = 0;
for(int i = 1;i <= 10;i++){
    sum += i;
}
System.out.println("sum:" + sum);
// sum:55
  • 初始化语句可以缺省,但必须在循环体外定义
  • 判断条件语句不可缺省,否则无限循环
  • 控制条件语句可以缺省,但同样必须在循环体内定义
2.3.2 增强for
/*
 *	for(元素类型 元素 : 数组或集合){
 *		循环体语句;
 *	}
 * 
 */
String[] strs = {"Hello", "World"};
for (String str : strs) {
    System.out.println(str);
}
// Hello
// World
2.3.3 while
/*
 * while循环语句的格式:
 *		while(判断条件语句){
 *			循环体语句;
 *			控制条件语句;
 *		}
 * 执行流程:
 *		1.执行判断条件语句
 *		2.为 true 时执行循环体语句,继续执行3;为 false 则跳出循环
 *		3.执行控制条件语句
 *		4.回到1继续执行判断条件语句,直至结果为 false 时跳出循环
 * 
 */
int i = 0;
while (true) {
    i += 1;
    System.out.println(i);
    if (i == 5) {
        break;
    }
}
// 注意:把 while 的条件设置为 true,并且循环体中没有 break 关键字的话,程序一旦运行起来,就根本停不下来了,除非强制停止
2.3.4 do-while
/*
 * do...while循环语句的格式:
 *		do {
 *			循环体语句;
 *			控制条件语句;
 *		} while(判断条件语句);
 * 
 * 执行流程:
 *		1.先执行循环体语句
 *		2.执行控制条件语句
 *		3.执行判断条件语句
 *		4.结果为 true 时回到1继续执行,为 false 则跳出循环
 * 
 */
int i = 0;
do {
    i++;
    System.out.println(i);
    if (i == 5) {
        break;
    }
} while (true);
  • 当需要for 循环或者 (do)while 循环中立即跳转到下一个循环时,就可以使用 continue 关键字,通常用于跳过指定条件下的循环体,如果循环是嵌套的,仅跳过当前循环
  • 选择结构与循环结构可以相互嵌套

有任何错误请指正,谢谢您的阅读,希望对您有所帮助。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值