今天继续更新Java基础语法。

       1、 我们目前在写程序的时候,数据值都是固定的,但是实际开发中,数据值肯定是变化的,所以,我们需要把数据改进为键盘录入,提高程序的灵活性。键盘录入(一共需要3步):
     (1)、导包  

import java.util.Scanner;

     (2)、创建键盘录入对象  :

Scanner sc = new Scanner(System.in);

  **除了sc可以更改,其他都是固定格式。**

     (3)、调用方法接收键盘录入的数据 ( 3种 ):
            sc.nextInt() 接收一个int类型的数据

int i = sc.nextInt();

 ** 除了i可以更改,其他都是固定格式。**

            sc.next() 接收一个字符串

String s = sc.next();

** 除了s可以更改,其他都是固定格式。**

              sc.nextLine() 接收一个字符串

String s = sc.nextLine();

** 除了s可以更改,其他都是固定格式。**

   next()与nextLine()的区别:
            1、单独使用的时候效果一样。
            2、nextLine()可以接收一些特殊字符 如空格、 tab、换行键等,而next()直接忽略接收。

  2、流程控制语句分类 ( 分3类 ):

顺序结构

      总的来说,写在前面的先执行,写在后面的后执行。

 (2)、选择结构( 2种 )
   A、 if 语句

        第一种格式:

if(关系表达式){
        语句体;
 }

 解释:
         1、if小括号中的关系表达式结果只能是布尔类型的,即结果只能是true或false。
         2、关系表达式的结果是true,就执行语句体的内容。如果是false就不执行。
         3、语句体可以不止是一条语句。
         4、大括号理论上可以省去,但是当语句体内容多的时候,不建议省去,因为后面的代码都会执行。建议永远不要省去大括号!!!!!!!

        第二种格式:

if(关系表达式){
      语句体1;
}else{
      语句体2;
}

  执行流程:
            1、判断关系表达式中的结果。
            2、如果关系表达式的结果是true,执行语句体1。
            3、如果关系表达式的结果是false,执行语句体2。
                 无论怎么说,语句体1还是语句体2,只会执行某一个 。  

     第三种格式:

if(关系表达式1){
      语句体1;
 }else if(关系表达式2){
      语句体2;
 }else if(关系表达式3){
      语句体3;
 }
  
  ...    

 }else if(关系表达式n){
       语句体n;
 }else{
       语句体n+1;
 }

  注意事项:
         1、else语句不是一定会执行,只有当前面所有的判断条件都是false的时候,最后才会执行else。
         2、最后的else可以不写吗?
               可以,但是如果前面的判断都不满足,就没有了默认情况的处理,代码不严谨。
         3、前面的else if写多少个呢?
               取决于具体题目中的判断个数。

  B、switch语句

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

    名词解释:
            1、switch:
                表示这是一个选择结构语句。
            2、表达式:
                这里的表达式一定会有一个结果值,但是这里结果数据类型只能是byte、short、int、char、JDK之后可以是枚举、JDK1.7之后可以是String。
            3、case:
                switch中匹配的使用关键字。
            4、常量值:
                要被匹配的值。注意:这里只能是常量值,不能是变量!!!
            5、语句体:
                当匹配到对应的常量值后,执行对应的语句体内容,语句体可以是一条也可以是多条。
            6、break:
                跳出(结束)switch选择结构。
            7、default:
                当所有的case都不匹配表达式中的值时,默认最后执行default中语句体。

    注意事项:
            1、break可以不写吗?
                  可以,但是会发生“case穿透“。
            2、default可以不写吗?
                  可以,但是不建议,代码不够严谨。当只有固定的几个值的时候,可以不写。
            3、default可以写在最前面吗?
                  可以。
                (1)default的执行顺序与它在switch中的位置无关。
                (2)当default的顺序与break省略同时出现的时候,出来的结果可能不是你想要的。
            4、多个case后面的常量值,不能一样。

    (3)、循环结构 ( 有2种 )
         A 、for循环

for(初始化语句;判断条件语句;控制条件语句){
    循环体语句;
}

  注意事项:
         1、初始化语句在整个循环过程中,只执行一次。
         2、初始化语句能不能省略不写?
               可以不在for循环中定义,但是一定要在执行for循环之前定义好。
         3、判断条件语句能不能省略呢?
               可以省略,但是一旦省略不写,说明任何情况下都可以执行循环体内容,无法结束循环,形成了死循环
          4、控制条件语句能不能省略?
               可以,但是一旦省略,初始化语句中的变量值不会发生改变,所以也是一个死循环
          5、判断条件语句的结果是boolean类型。
          6、当循环体内容只有一句的时候,大括号可以省略,但是当语句体内容有多条语句的时候,不能省略大括号,如果你省略了,只针对第一条语句有效。

         B、 while循环  --  放在下一期讲解。