Java复习总结二(详细,干货)

上接:Java复习总结一

三元运算符

  1. 格式

    	比较表达式?表达式1:表达式2;
    
  2. 执行流程:

    	首先计算比较表达式的值,看是true还是false。
    	如果是true,表达式1就是结果。
    	如果是false,表达式2就是结果。
    
  3. 案例

    int a = 10;
    int b = 30;
    int max = (a > b) ? a : b;	//获取两个变量的最大值
    int min = (a < b) ? a : b;	//获取两个变量的最小值
    String s = (a == b) ? "等于" : "不等于";	//判断是否相等
    
  4. 注意

     比较表达式?表达式1:表达式2;
     表达式并不是只能是整数,还有String类型,只不过要注意接收类型。
     表达式是什么类型就是用什么类型接收。
    

键盘录入

  1. 实际开发中,数据是变化的,为了提高程序的灵活性,我们加入键盘录入数据。

  2. 实现:

    1、导包
    	import java.util.Scanner;
    	位置:在class的上边
    2、创建对象
    	Scanner sc = new Scanner(System.in);
    3、获取数据
    	int a = sc.nextInt();
    
  3. 案例(键盘录入两个数,获取最大的数)

import java.util.Scanner;

public class Demo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int a = sc.nextInt();
        int b = sc.nextInt();

        int max = (a > b) ? a : b;

        System.out.println("最大的数是:"+max);
    }
}

流程控制语句

1、顺序结构 从上往下,从左往右,依次执行
2、选择结构	按照不同的选择,执行不同的代码
3、循环结构 循环执行一些代码

选择结构

if判断语句
  1. 格式

     格式1:
     	if(比较表达式) {
     		语句体;
     	}
     	
     	执行流程:
     		判断比较表达式的值,看是true还是false
     		如果是true,就执行语句体
     		如果是false,就不执行语句体
     
     格式2:
     	if(比较表达式) {
     		语句体1;
     	}else {
     		语句体2;
     	}
     	
     	执行流程:
     		判断比较表达式的值,看是true还是false
     		如果是true,就执行语句体1
     		如果是false,就执行语句体2
     		
     格式3:
     	if(比较表达式1) {
     		语句体1;
     	}else if(比较表达式2){
     		语句体2;
     	}
     	...
     	else {
     		语句体n+1;
     	}
     	
     	执行流程:
     		判断比较表达式1的值,看是true还是false
     		如果是true,就执行语句体1
     		如果是false,就继续判断比较表达式2的值,看是true还是false
     		如果是true,就执行语句体2
     		如果是false,就继续判断比较表达式3的值,看是true还是false
     		...
     		如果都不满足,就执行语句体n+1
    

if语句所控制的语句,是一条语句的话,大括号可以省略(不建议使用)

注意:

1、比较表达式无论简单还是复杂,结果是boolean类型
2、if语句控制的语句体如果是一条语句,是可以省略大括号的;如果是多条,不能省略。
		建议:永远不要省略。
3、三种if语句其实都是一个语句,只要有一个执行,其他的就不再执行。
4、一般来说,有左大括号,就没有分号,有分号,就没有左大括号。
5、else后面如果没有if,是不会出现比较表达式的。
6、三元可以实现的if一定可以实现,如果是一条输出语句的话用三元就不太适用了,
   因为三元是一个运算符,必须有一个结果返回的

switch

  1. 格式:

     switch(表达式) {
     	case 值1:
     		语句体1;
     		break;
     	case 值2:
     		语句体2;
     		break;
     	...
     	default:
     		语句体n+1;
     		break;
     }
    

注意:

1. 接收的基本数据类型:byte,short,char,int
	引用数据类型:
		JDK5版本后可以接收枚举类型。
		JDK7版本后可以接收String类型。
2. switch碰到break就会停止,跳出switch语句。
   break可以省略写,但是会出现case穿透现象。
3. default如果所有情况不匹配,就执行这条语句。
   不管放前面还是后面都是最后执行的,推荐放在最后面。
   default可以省略但是不建议,因为它的作用是对不正确的情况给出提示。
4. caes的应用场景,如果switch语句中代码的语句体都是相同的就可以是用case。
5. case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的。

应用场景:

if通常用于范围的匹配。
switch用于固定的选择匹配。

穿透现象,在switch语句中,每个case选项中都要加break,否则可能会出现穿透现象,键盘录入一个整数“1”,输出结果“1”,“2”,case 1执行完后没有break跳出switch,继续往下执行,在执行完case 2时,遇到break,跳出循环。

Scanner sc = new Scanner(System.in);

int i = sc.nextInt();

switch (i){
    case 1:
        System.out.println(1);
    case 2:
        System.out.println(2);
        break;
    default:
        System.out.println("没这个数");
}

default不管放前面还是后面都是最后执行的,输入一个值0,程序会先走case然后走default,由于没有break跳出选择,穿透,继续由上往下执行,打印“没这个数”,“1”,“2”,到选择语句末结束。

Scanner sc = new Scanner(System.in);

int i = sc.nextInt();

switch (i){
    default:
        System.out.println("没这个数");
    case 1:
        System.out.println(1);
    case 2:
        System.out.println(2);
}

打印:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鹈鹕吃吃吃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值