JavaSe总结-03--Java基础语法(2)

03.01 数据类型中补充的几个小问题
03.02 算术运算符的基本用法
03.03 算术运算符++和--的用法
03.04 算术运算符++和--的练习
03.05 算术运算符+的多种用法
03.06 赋值运算符的基本用法
03.07 赋值运算符的面试题
03.08 比较运算符的基本用法及其注意事项
03.09 逻辑运算符的基本用法
03.10 逻辑运算符&&和&的区别
03.11 位运算符的基本用法1
03.12 位异或运算符的特点
03.13 位运算的面试题
03.14 位运算符的基本用法2及面试题
03.15 三元运算符的基本用法
03.16 三元运算符的练习
03.17 键盘录入的基本格式讲解
03.18 键盘录入的练习1
03.19 键盘录入的练习2
03.20 顺序结构语句
03.21 选择结构if语句格式1
03.22 选择结构if语句注意事项
03.23 选择结构if语句格式2
03.24 选择结构if语句格式2的练习
03.25 if语句的格式2和三元的相互转换问题
03.26 选择结构if语句格式3
03.27 选择结构if语句格式3的练习
03.28 选择结构if语句格式3的练习
03.29 选择结构if语句的嵌套使用

03.01 数据类型中补充的几个小问题

    1:在定义Long或者Float类型变量的时候,要加L或者f。

      整数默认是int类型,浮点数默认是double。

      byte,short在定义的时候,他们接收的其实是一个int类型的值。 

    2:数据类型转换之默认转换:(byte,short,char) → int → long → float → double

      为什么占用8个字节的long默认转换为4个字节的float?

       A:它们底层的存储结构不同。

       B:float表示的数据范围比long的范围要大

        long:2^63-1

        float:3.4*10^38 > 2*10^38 > 2*8^38 = 2*2^3^38 = 2*2^114 > 2^63-1

    3:Java语言中的字符char可以存储一个中文汉字吗?为什么呢?

       可以。因为java语言中的字符占用两个字节。Java语言采用的是Unicode编码。

03.02 算术运算符的基本用法

    运算符:对常量和变量进行操作的符号称为运算符

    运算符分为:算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、三目运算符6种

    算术运算符:+(加)、-(减)、*(乘)、/(除)、%(取余或取模,两个数相除的余数)、+(连接符)、++(自增)、--(自减)

1 int x = 3;
2 int y = 4;
3 System.out.println(x + y);  //7
4 System.out.println(x - y);  //-1
5 System.out.println(x * y);  //12
6 System.out.println(x / y);  //0,/获取的是除法操作的商
7 System.out.println(x % y);  //3,%获取的是除法操作的余数

    注意:整数相除只能得到整数,如果想得到小数,只需把操作的数据中的任意的一个数据变为浮点数即可

    如:System.out.println(x * 1.0 / y);  //0.75

03.03 算术运算符++和--的用法

    例1:单独使用时

1 int x = 3;
2 int y = 4;
3 System.out.println("x="+x+",y="+y);  //x=3,y=4
4 x++;
5 --y;
6 System.out.println("x="+x+",y="+y);  //x=4,y=3

    单独使用时放在操作数据的前面和后面效果一样。也就是a++或者++a效果一样。

    例2:参与操作时

1 int x = 3;
2 int y = 4;
3 int a = x++;
4 int b = --y;
5 System.out.println("x="+x+",y="+y);  //x=4,y=3
6 System.out.println("a="+a+",b="+b);  //a=3,b=3

    参与操作时放在操作数的前面:先自增或者自减,再参与操作

            放在操作数的后面:先参与操作,再自增或者自减

    例3:特殊情况

    1 int i = 3;
    2 i = i++;
    3 System.out.println("i="+i);  //i=3

    i=i++,先进行i++运算,此时虚拟机会开辟新的空间临时存储i的值,然后进行i++的运算,将运算结果4赋给i,i=4,此时i++运算完成,然后将临时存储的i的值又赋给i,i=3

03.04 算术运算符++和--的练习

1.计算a、b、c的值

 1 int a = 10;
 2 int b = 10;
 3 int c = 10;
 4 a = b++;
 5 c = --a;
 6 b = ++a;
 7 a = c--;
 8 System.out.println("a="+a);  //a=9
 9 System.out.println("b="+b);  //b=10
10 System.out.println("c="+c);  //c=8

2.计算x、y的值

1 int x = 4;
2 int y = (x++)+(++x)+(x*10);  //4+6+60
3 System.out.println("x="+x);  //x=6
4 System.out.println("y="+y);  //y=70

03.05 算术运算符+的多种用法

    +的用法:加法、正号、字符串连接符

    1 System.out.println(3 + 4);  //加法,7
    2 System.out.println(+5);     //正号,5
    3 System.out.println("hello"+'a'+1);  //字符串连接符,helloa1

03.06 赋值运算符的基本用法

    基本的赋值运算符[=(赋值)]

    扩展的赋值运算符[+=(左加)、-=(左减)、*=(左乘)、/=(左除)、%=(左取模)]

    1 int y = 10;
    2 y += 20;  //相当于y = y + 20;
    3 System.out.println("y="+y);  //y=30

03.07 赋值运算符的面试题

    short s = 1, s = s+1; 

    short s = 1, s += 1;

    两句代码是否有问题?

    short s = 1,s = s+1;有问题,s+1的结果为int型,不能赋值给short 型的s

    short s = 1,s += 1;没有问题,s += 1隐含了一个强制类型转换,相当于 s = (short)(s+1);扩展的赋值运算符都有这个特点

03.08 比较运算符的基本用法及其注意事项

    比较运算符:==(相等)、 !=(不等)、 <(小于)、 >(大于)、 <=(小于等于)、 >=(大于等于)

    注意:

    1.比较运算符运算完的结果必须是true或false

    2.比较运算符"=="不能写成"="

03.09 逻辑运算符的基本用法

    逻辑运算符:&(与)、|(或)、^(异或)、!(非)、&&(双与)、||(双或)

    逻辑运算符用于连接两个boolean类型的表达式

        &(与)符号的运算规律:&运算的两边有一个是false结果就是false,只有两边都为true,结果才为true

        |(或)符号的运算规律:|运算的两边有一个是true结果就是true,只有两边都为false,结果才为false

        ^(异或)符号的运算规律:|运算的两边结果相同,结果为false,两边结果不同,结果为true

        !(非)符号的运算规律:判断事物的另一面,例:!true=false   !false=true

03.10 逻辑运算符&&和&的区别

    &&(双与)符号的运算规律: 与&(与)符号的运算规律相同

    ||(双或)符号的运算规律: 与|(或)符号的运算规律相同

     

    &(单与)与&&(双与)的区别:

        &(单与),不管运算的左边的结果为true或false,都会运算右边的表达式的结果

        &&(双与),当运算符左边的结果为false时,不会运算右边表达式的值,因为最终结果为false

    |(单或)与||(双或)的区别:

        |(单或),不管运算的左边的结果为true或false,都会运算右边的表达式的结果

        ||(双或),当运算符左边的结果为true时,不会运算右边表达式的值,因为最终结果为true

03.11 位运算符的基本用法1

    位运算符:&(与运算)、|(或运算)、^(异或运算)、~(反码)

    位运算是直接对二进制进行运算

 

03.12 位异或运算符的特点

    特点:一个数异或同一个数两次,结果还是这个数

03.13 位运算的面试题

    不使用第三方变量实现两个整数的互换

    方式1

        a = a ^ b;    

        b = a ^ b; // b = a ^ b ^ b = a;       

        a = a ^ b; // a = a ^ b ^ a = b;         

    方式2

        a = a + b;

        b = a - b; // b = a + b - b = a;

        a = a - b; // a = a + b - a = b;

    方式3 

        b = (a + b) - (a = b);

03.14 位运算符的基本用法2及面试题

    位运算符:<<(左移)、>>(右移)、>>>(无符号右移)

    <<(左移):符号位不变,低位补零,每左移一位相当于乘以2

    >>(右移):低位溢出,符号位不变,并用符号位补溢出的高位,每右移一位相当于除以2

    >>>(无符号右移):低位溢出,高位补零

    面试题:用最有效率的方式计算2乘以8的结果

    解答: 2<<3

03.15 三元运算符的基本用法

    格式:(条件表达式)?表达式1:表达式2;

    解释:条件表达式的结果为true, 运算的结果是表达式1的值

        条件表达式的结果为false,运算的结果是表达式2的值

    1 int x = 0,y;
    2 y = (x > 1)?100:200;
    3 System.out.println("y="+y);  //y=200

03.16 三元运算符的练习

    1.获取两个数中的最大值

    1 int x = 100;
    2 int y = 200;
    3 int max =(x > y)?x:y;
    4 System.out.println("max="+max); //max=200

    2.获取三个数中的最大值

    1 int x = 100;
    2 int y = 300;
    3 int z = 200;
    4 int temp = (x > y)? x : y;
    5 int max =(temp > z)?temp : z;
    6 System.out.println("max="+max);  //max=300

03.17 键盘录入的基本格式讲解

    键盘录入数据概述:目前在写程序的时候,数据值都是固定的,但实际开发中,数据值肯定是变化的,所以准备把数据改进为键盘录入,提高程序的灵活性。

    键盘录入数据的步骤:

    1).导包:(位置放到class定义的上面)import java.util.Scanner;

    2).创建对象:Scanner sc = new Scanner(System.in);

    3).接收数据:int x = sc.nextInt();

03.18 键盘录入的练习1

    1.键盘录入两个数据,求和

 1 import java.util.Scanner;
 2 class Demo
 3 {
 4    public static void main(String[] args)
 5    {
 6       Scanner sc = new Scanner(System.in);
 7       System.out.println("请输入第1个数:");
 8       int x = sc.nextInt();
 9       System.out.println("请输入第2个数:");
10       int y = sc.nextInt();
11       System.out.println(x+"+"+y+"="+(x + y));
12    }
13 }

    运行结果:

请输入第1个数:
23
请输入第2个数:
45
23+45=68

    2.键盘录入两个数据,求最大值

 1 import java.util.Scanner;
 2 class Demo
 3 {
 4    public static void main(String[] args)
 5    {
 6       Scanner sc = new Scanner(System.in);
 7       System.out.println("请输入第1个数:");
 8       int x = sc.nextInt();
 9       System.out.println("请输入第2个数:");
10       int y = sc.nextInt();
11       int max = (x > y) ? x : y;
12       System.out.println("最大数是:"+max);
13    }
14 }

     运行结果:

    请输入第1个数:
    45
    请输入第2个数:
    32
    最大数是:45

03.19 键盘录入的练习2

    键盘录入三个数据,求最大值

 1 import java.util.Scanner;
 2 class Demo
 3 {
 4    public static void main(String[] args)
 5    {
 6       Scanner sc = new Scanner(System.in);
 7       System.out.println("请输入第1个数:");
 8       int x = sc.nextInt();
 9       System.out.println("请输入第2个数:");
10       int y = sc.nextInt();
11       System.out.println("请输入第3个数:");
12       int z = sc.nextInt();
13       int temp = (x > y) ? x : y;
14       int max = (temp > z) ? temp : z;
15       System.out.println("最大数是:"+max);
16    }
17 }

运行结果:

请输入第1个数:
34
请输入第2个数:
6
请输入第3个数:
4
最大数是:34

03.20 顺序结构语句

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

    顺序结构概述:是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。

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

    流程图:

03.21 选择结构if语句格式1

    选择结构也被称为分支结构。

    选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。

    Java语言提供了两种选择结构语句: if语句 和 switch语句

    if语句第1种格式:

        if(关系表达式) {

           语句体;

        }

        执行流程:首先判断关系表达式看其结果是true还是false,如果是true就执行语句体,如果是false就不执行语句体

        流程图:

1 int x = 3;
2 if(x > 1)
3 {
4    System.out.println("yes");
5 }
6 System.out.println("over");

03.22 选择结构if语句注意事项

    注意事项:

    1.关系表达式无论简单还是复杂,结果必须是boolean类型

    2.当if控制的语句是单条语句时,if的控制范围{ }可以省略,当if的{ }省略时,if只能控制离他最近的单条语句

      当if控制的语句不是单条语句时,if的{ }不能省略。建议永远不要省略。

    3.如果在if(条件表达式)后加了;表示没有执行语句的判断结构,if不会控制下面的语句,无论if的条件是true还是false,下面的语句都会执行

03.23 选择结构if语句格式2

    if语句第2种格式:

        if(关系表达式){

           语句体1;

        }else{

           语句体2;

        }

        执行流程:首先判断关系表达式看其结果是true还是false,如果是true就执行语句体1,如果是false就执行语句体2

        流程图:

 1 int a = 3,b;
 2 if(a > 1)
 3 {
 4    b = 100;
 5 }
 6 else
 7 {
 8    b = 200;
 9 }
10 System.out.println("b="+b); //b=100

03.24 选择结构if语句格式2的练习

    判断一个数是奇数还是偶数

1 int a = 23;
2 if(a % 2 == 0)
3 {
4    System.out.println(a+"是偶数");
5 }
6 else
7 {
8    System.out.println(a+"是奇数");
9 }

    运行结果:23是奇数

03.25 if语句的格式2和三元的相互转换问题

    三元运算符其实就是if else的简写格式,if else 是通用格式

    当if else运算后有一个具体的结果时,可以简化写成三元运算符

    当if else语句控制的语句体是一条输出语句的时候,就不能写成三元运算符。

    因为三元运算符是一个运算符,必须要求有一个结果返回。而输出语句却不能作为一个返回结果。

03.26 选择结构if语句格式3

    if语句第3种格式:

        if(关系表达式1){

            语句体1;

        }else  if(关系表达式2){

            语句体2;

        }

            ......

        else{

           语句体n+1;

        }

        执行流程:首先判断关系表达式1看其结果是true还是false

                如果是true就执行语句体1

                如果是false就继续判断关系表达式2看其结果是true还是false

                如果是true就执行语句体2

                如果是false就继续判断关系表达式...看其结果是true还是false

                ...

                如果没有任何关系表达式为true,就执行语句体n+1。

        流程图:

 1 import java.util.Scanner;
 2 class Demo
 3 {
 4    public static void main(String[] args)
 5    {
 6       Scanner sc = new Scanner(System.in);
 7       System.out.println("请输入一个成绩:");
 8       int score = sc.nextInt();
 9       if(score < 0 || score > 100)
10       {
11          System.out.println("数据错误");
12       }
13       else if(score >= 90)
14       {
15          System.out.println(score+"对应等级A");
16       }
17       else if(score >= 80)
18       {
19          System.out.println(score+"对应等级B");
20       }
21       else if(score >= 70)
22       {
23          System.out.println(score+"对应等级C");
24       }
25       else if(score >= 60)
26       {
27          System.out.println(score+"对应等级D");
28       }
29       else
30       {
31          System.out.println(score+"对应等级E");
32       }
33    }
34 }

03.27 选择结构if语句格式3的练习

    键盘录入x的值,计算出y的并输出

    x和y的关系满足如下:

      x >= 3        y = 2x + 1;

      -1 <= x < 3   y = 2x;

      x <= -1       y = 2x - 1;

 1 import java.util.Scanner;
 2 class Demo
 3 {
 4    public static void main(String[] args)
 5    {
 6       int y = 0;
 7       Scanner sc = new Scanner(System.in);
 8       System.out.println("请输入一个数:");
 9       int x = sc.nextInt();
10       if(x >= 3)
11       {
12          y = 2 * x + 1;
13          System.out.println("y=2*"+x+"+1="+y);
14       }
15       else if(x >= -1 && x < 3)
16       {
17          y = 2 * x;
18          System.out.println("y=2*"+x+"="+y);
19       }
20       else
21       {
22          y = 2 * x - 1;
23          System.out.println("y=2*"+x+"-1="+y);
24       }
25    }
26 }

03.28 选择结构if语句格式3的练习

    键盘录入月份的值,输出对应的季节    春(3,4,5)、夏(6,7,8)、秋(9,10,11)、冬(12,1,2)

 1 import java.util.Scanner;
 2 class Demo
 3 {
 4    public static void main(String[] args)
 5    {
 6       Scanner sc = new Scanner(System.in);
 7       System.out.println("请输入一个月份:");
 8       int month = sc.nextInt();
 9       if(month > 12 || month < 1)
10       {
11          System.out.println("输入的月份有误");
12       }
13       else if(month >= 3 && month <= 5)
14       {
15          System.out.println(month+"月对应春季");
16       }
17       else if(month >= 6 && month <= 8)
18       {
19          System.out.println(month+"月对应夏季");
20       }
21       else if(month >= 9 && month <= 11)
22       {
23          System.out.println(month+"月对应秋季");
24       }
25       else
26       {
27          System.out.println(month+"月对应冬季");
28       }
29    }
30 }

     if语句的使用场景:

    1).针对表达式是一个boolean类型的判断

    2).针对一个范围的判断

03.29 选择结构if语句的嵌套使用

 1 int a = 10;
 2 int b = 30;
 3 int c = 20;
 4 int max;
 5 if(a > b)
 6 {
 7      if(a > c)
 8      {
 9         max = a;
10      }
11      else
12      {
13          max = c;
14      }
15 }
16 else
17 {
18    if(b > c)
19    {
20        max = b;
21    }
22    else
23    {
24       max = c;
25    }
26 }
27 System.out.println("max:"+max);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值