【JAVA学习】005_键盘录入Scanner&条件判断if/switch&局部代码块


【JAVA学习】005_键盘录入Scanner&条件判断if/switch&局部代码块

前言

记录一个小白的Java学习之旅……

一、键盘录入

键盘录入实现步骤:

第一步:导包

import java.util.Scanner;
注意:写在package的下面,写在class的上面

第二步:创建对象

Scanner sc = new Scanner(System.in);

第三步:调用方法

int i = sc.nextInt();

package com;

import java.util.Scanner;

public class demo11 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);  // 创建对象

        System.out.println("输入一个数字:");
        int i = sc.nextInt();  // 调用方法,定义变量结果数据为数字

        System.out.println("输入一个字符串:");
        String str = sc.next();  // 调用方法,定义变量结果数据为字符串

        System.out.println("输入一个short:");
        Short ss = sc.nextShort();  // 调用方法,定义变量结果数据为short

        System.out.println("输入一个double:");
        Double dd = sc.nextDouble();  // 调用方法,定义变量结果数据为double

        System.out.println("输入一个float:");
        Float ff = sc.nextFloat();  // 调用方法,定义变量结果数据为float

        System.out.println(i + "……" + str + "……" + ss + "……" + dd + "……" + ff);
    }
}

输出结果:
	输入一个数字:
	1
	输入一个字符串:
	aa
	输入一个short:
	1
	输入一个double:
	2
	输入一个float:
	3
	1……aa……1……2.0……3.0

二、条件判断

if语句

格式一:if(){}

if(条件表达式){

  语句体;

}

if(条件表达式) 一条有效语句;

执行流程:

如果程序执行到if语句的时候,会去看条件表达式的结果是true还是false
如果是true,就会进入到if语句中,执行里面的语句体内容
如果是false,就不会进入到if语句中,就不会执行里面的语句体内容

public class demo12 {
    public static void main(String[] args) {
        int i = 1;
        int j = 2;
        if (i < j){
            System.out.println(i + " < " + j);  // 1 < 2
        }

        boolean b = true;

        if (b == false){
            System.out.println(b + "……B1");  // 不满足条件,不执行
        }

        if (b = false){
            System.out.println(b + "……B2");  // 修改b值为false,不满足条件,不执行
        }

        System.out.println(b + "……B3");  // false……B3

        boolean c = false;
        if (c){
            System.out.println(c + "……C1");  // 修改b值为false,不满足条件,不执行
        }

        System.out.println(c + "……C2");  // false……C2

        if(3 > 2) System.out.println("3 > 2");  // 3 > 2    // 当if语句中只有一条有效语句的时候,花括号是可以省略不写的
		
		if(3 < 2)
        	System.out.println("1111");  // 不满足条件,不执行
        	System.out.println("2222");  // 2222  // 同上面的if语句没有关系
        
        if(3 < 2)
        	int d = 1;  // 编译报错:【java: 此处不允许使用变量声明】,此处相当于两条有效语句:int d; d = 1;

    }
}

格式二:if(){}else{}

if(条件表达式){

  语句体;

}else{

  语句体;

}

执行流程:

如果程序执行到if语句的时候,会去看条件表达式的结果是true还是false
如果是true,就会进入到if语句中,执行里面的语句体内容
如果是false,就不会进入到if语句中,会进入到else中,执行里面的语句体内容

public class demo13 {
    public static void main(String[] args) {
        int i = 1;
        int j = 2;

        if (i > j){
            System.out.println("i = " + i + " 最大");  // 不满足条件,不执行语句
        }else{
            System.out.println("j = " + j + " 最大");  // j = 2 最大  // 满足条件,执行语句
        }
    }
}

格式三:if(){}else if(){}else{}

if(条件表达式){

  语句体;

}else if(条件表达式){

  语句体;

} ……

else{

  语句体;

}

执行流程:

如果程序执行到if语句的时候,会去看条件表达式的结果是true还是false
如果是true,就会进入到if语句中,执行里面的语句体内容
如果是false,就会继续往下走,看else if的条件表达是的结果是true还是false
……

package com;

public class demo14 {
    public static void main(String[] args) {
        int i = 5;
        if (i > 7){
            System.out.println("i = " + i + " , i > 7");
        } else if (i > 6) {
            System.out.println("i = " + i + " , i > 6");
        } else if (i > 5) {
            System.out.println("i = " + i + " , i > 5");
        } else if (i > 4) {
            System.out.println("i = " + i + " , i > 4");  // i = 5 , i > 4
        } else {
            System.out.println("i = " + i + " , i > 3");  // 在上一步,if判断已经结束,不会执行该语句
        }
    }
}

注意:else可以省略不写(不建议)

package com;

public class demo15 {
    public static void main(String[] args) {
        int i = 5;
        if (i > 7){
            System.out.println("i = " + i + " , i > 7");
        } else if (i > 6) {
            System.out.println("i = " + i + " , i > 6");
        } else if (i > 5) {
            System.out.println("i = " + i + " , i > 5");
        } else if (i > 4) {
            System.out.println("i = " + i + " , i > 4");  // i = 5 , i > 4
        }
    }
}


public class demo16 {
    public static void main(String[] args) {
        int i = 5;
        int a;
        if (i > 7){
            a = 1;
        } else if (i > 6) {
            a = 2;
        } else if (i > 5) {
            a = 3;
        } else if (i > 4) {
            a = 4;
        }else{
            a = 5;
        }
        System.out.println(a);  // 4
    }
}


public class demo17 {
    public static void main(String[] args) {
        int i = 5;
        int a;
        if (i > 7){
            a = 1;
        } else if (i > 6) {
            a = 2;
        } else if (i > 5) {
            a = 3;
        } else if (i > 4) {
            a = 4;
        }
        System.out.println(a);  // 编译报错:【java: 可能尚未初始化变量a】
    }
}

switch语句

格式:

switch(表达式){

  case 取值1:
  	语句体;
  	break;

  case 取值2:
  	语句体;
  	break;

  case 取值3:
  case 取值4:
  	语句体;
  	break;

  ……

  default:
  	语句体;
  	break;

}

执行流程:

  • 当程序执行到switch的时候,会进入到switch,会找第一个case进行匹配,如果匹配成功,就进入到case中执行里面的语句体内容和break;如果没有匹配成功,会继续往下走,找第二个case继续匹配……

  • 如上,满足case取值3或case取值4时,会执行相同的语句体和break

  • 如果所有的case都不匹配,最后会执行default中的语句体和break

public class demo18 {
    public static void main(String[] args) {
        int i = 3;
        switch (i){
            case 1:
                System.out.println("i1 = " + i);
                break;
            case 2:
                System.out.println("i2 = " + i);
                break;
            case 3:
                System.out.println("i3 = " + i);  // i3 = 3
                break;
            case 4:
                System.out.println("i4 = " + i);
                break;
            default:
                System.out.println("i5 = " + i);
                break;
        }
    }
}

注意:

  1. switch中的表达式的数据类型可以为:

       byte,short,int,char,string,枚举
    
  2. default可以放在任意一行,但是不管放在哪一行,都会先找第一个case去匹配,如果所有case都不匹配,才会执行default

       public class demo19 {
           public static void main(String[] args) {
               int i = 5;
               switch (i){
                   case 1:
                       System.out.println("i1 = " + i);
                       break;
                   case 2:
                       System.out.println("i2 = " + i);
                       break;
                   default:
                       System.out.println("i5 = " + i); // i5 = 5
                       break;
                   case 3:
                       System.out.println("i3 = " + i); 
                       break;
                   case 4:
                       System.out.println("i4 = " + i);
                       break;
       
               }
           }
       }
    
  3. default可以省略不写(不建议)

       不写default,即默认为:
       		default:
       			break;
    
  4. break可以省略不写(不建议)

       public class demo20 {
           public static void main(String[] args) {
               int i = 3;
               switch (i){
                   case 1:
                       System.out.println("i1 = " + i);
                       break;
                   case 2:
                       System.out.println("i2 = " + i);
                   case 3:
                       System.out.println("i3 = " + i);  // i3 = 3  // 满足条件,执行该语句
                   case 4:
                       System.out.println("i4 = " + i);  // i4 = 3  // 上个case满足条件后未执行break,switch语句未结束,执行case4
                   default:
                       System.out.println("i5 = " + i);  // i5 = 3  // switch语句未结束,执行default
                       break;
               }
           }
       }
    
  5. switch结束标记:

      1) break;
      2) 遇到结尾 }
    

何时使用if和switch

如果是判断某个区间范围,推荐使用if
如果是判断某几个数据,推荐使用switch

三、局部代码块

代码块

由一对花括号括起来的,就称为代码块

{
	代码;
}

局部代码块

写在main(程序执行入口)里面的代码块,就称为局部代码块

public class demo21 {
    public static void main(String[] args) {
        int i;
        
        // 局部代码块
        {
            i = 1;
            int j = 2;
        }
        
        // 局部代码块
        {
            int j = 3;
        }

        System.out.println(i);  // 1
        // System.out.println(j);  // 3  // 变异报错,找不到变量j
    }
}

局部代码块作用:

能够让变量更早的在内存中消失,节省内存空间

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值