Java-笔记06-键盘输入Scanner&&三元判断&&if-else语句判断&&switch语句判断

  • 键盘录入,让程序更加的灵活

              我们要实现键盘数据的录入:

              A:导包:格式:import java.util.Scanner;                        位置:在class的上面

              B:创建键盘录入对象  格式:Scanner sc=new Scanner(System.in);

              C:通过对象获取数据

              格式:int x=sc.nextInt();【注意;I是大写的,类型前后呼应

例:

import java.util.Scanner;

class ScannerDemo
{
    public static void main(String[] args)
    {

        Scanner sc=new Scanner(System.in);

        System.out.println("请输入一个数据:");

        int x=sc.nextInt();    //【承接上个输入语句中的输入内容,并将输入的数据赋值给x】

        //【注意:程序中是int类型,所以键盘录入的数据应符合数据类型,如果非int即不符合所定义的数据类型将会输出不理想的东西】

        System.out.println("你输入的数据是:"+x);

    }

}
  • 使用键盘录入获取三个数据中的最大值
    import java.util.Scanner;
    
    public class chu {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    	
    		int a, b, c, max;
    		System.out.println("请输入a的值:");
    		a = sc.nextInt();
    		System.out.println("请输入b的值:");
    		b = sc.nextInt();
    		System.out.println("请输入c的值:");
    		c = sc.nextInt();
    
    		max = ((a > b ? a : b) > c ? (a > b ? a : b) : c);
    
    		System.out.println("abc中的最大值为:" + max);
    	}
    }
  • 语句按顺序执行不必过多解释,见分号则为语句的结束

              选择结构:if语句;switch语句

              if(比较表达式)

              {

                      语句体;

              }

              执行流程:先比较表达式的值,看其返回值是true还是false

              如果是true,就执行语句体;如果是false,就不执行语句体。

              注意,如果为假只影响自己的语句体,其他的顺序执行


  • if语句的注意事项:比较表达式无论简单还是复杂,必须boolean类型。

              if语句控制的语句体如果是一条语句,大括号可以省略;如果是多条语句,则不能省略。建议:永远不要省略。

int a=10;

if(a=100)

System.out.println("a的值是100");

System.out.println("over");

以上两条都会输出,单条语句没有大括号,则if只管就近原则的一个

              if(***);

              注意,if语句后面加了分号,并不会报错,分号被视为语句的终结,即分号代表一条空语句,后面的继续执行。

              而其后面的所有都将与前if没有关系。if语句中,左大括号与分号不共存!


  • if语句格式2:

              if(比较表达式)

              {

                            语句体1;

              }

              else

              {

                            语句体2;

              }

              执行流程:首先计算比较表达式的值,看起返回值是true还是false,如果是true,则执行语句体1。

                            如果是false,则执行2。else后面是没有比较表达式的,只有if后面有。

if语句来获取两个数据的最大值

int a=10; int b=20; int max1;

if(a>b)
{
    max1=a;
}

//这样的比较赋值可以用三元运算符改进:

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

              注意:

              三元运算符可以实现的,都可以采用if语句实现,反之不成立。

              三元可变为if,if不一定可变为三元

              比如:当if语句控制的操作是一个输出语句时不可以

              因为三元运算符是一个运算符,运算符操作完毕就应该有一个结果,而非一个语句的输出。


  • 三元大战if语句

例子:

int a=10;int b=30;int c=20;

/* 三元运算 */

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

int max=(temp>c)?temp:c;

/* 改为if语句 */

if(a>b){
    if(a>c){   
        max=a;
    }else {
        max=c;
    }
}else{   
    if(b>c){
        max=b;
    }else{
        max=c;
    }
}

//两种方式最后的结果都是一样的,max的值都会是30
  • if语句的格式3

              if(比较表达式1)

              {

                            语句体1;

              }

              else if(比较表达式2)

              {

                            语句体2;

              }

              ·······

              else

              {

                            语句体n+1;

              }

              执行流程:

                            首先计算比较表达式1看返回值是true还是false

                            如果是true,就执行语句体1,if语句结束

                            如果是false,接着计算比较表达式2看返回值是true还是false

                                          如果是true,就执行语句体2,if语句结束

                                          如果是false,接着计算比较表达式3看返回值是true还是false

                                          ···

                                          如果是false,就执行语句题n+1。

                                          也就是说:如果之前的所有条件语句都是false,就执行最后的else中的语句体。

              不同的条件适合同一个结果时建议逻辑运算符“且”“或”等的使用。例如:三个不同的月份对应同一个季节。


  • switch语句格式

              switch(表达式){

                            case 值1:

                                          语句体1;     break;

                            case 值2:

                                          语句体2;     break;

                            ···

                            default:

                                          语句体n+1;    break;

              }

              最后的default语句的作用:当之前所有的case值都不符合时则执行default的语句体。


  • switch语句中的表达式可以是字符类型,也可以是字符串类型。

              用String来定义字符串

              String s = sc.nextLine();

              switch(s)

              {             case "boy":   语句体   ;  break;

                             case "girl":   语句体   ;  break;

                            ··········

              }


  • if与switch的适用范围

              if语句:

                            针对结果是boolean类型的判断

                            针对一个范围的判断

                            针对几个常量值的判断

              switch语句:

                            针对几个常量值的判断

                            byte,short,int,char

                            switch语句中的表达式只能用int值

                            而byte,short,char的级别小于int,在进行运算时可以转换为int

                            所以可以与switch匹配

              但是:

                            boolean比较特殊,不由任何类型来转化,也不会转化为任何类型

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值