Java基础-Day03

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

  • 在定义long或者float类型变量的时候,要加L或者f。
  • 整数默认是int类型,浮点数默认是double。
  • byte,short在定义的时候,他们接收的其实是一个int类型的值。
  • 数据类型转换之默认转换 byte,short,char--int--long--float--double 问题:long:8个字节;float:4个字节。A:它们底层的存储结构不同。B:float表示的数据范围要比long的范围大。
  • Java语言中的字符char可以存储一个中文汉字?能;因为Java语言中的字符占两个字节

算术运算符

 1 package com.itheima.demo01;
 2 /*
 3  * 运算符
 4  *     就是对常量和变量进行操作的符号
 5  *     
 6  * 注意事项:
 7  *     A:整数相除只能得到整数,如果相得到小数,必须把数据变化为浮点数类型
 8  *     B:/获取的是操作的商,%获取的是操作的余数
 9  */
10 public class OperatorDemo {
11     public static void main(String[] args) {
12          //定义变量
13         int x = 3;
14         int y = 4;
15         
16         System.out.println(x+y);
17         System.out.println(x-y);
18         System.out.println(x*y);
19         System.out.println(x/y);//整数相除只能得到整数
20         //结果:7;-1;12;0;
21         //我就想得到小数,该怎么办?
22         //只需要把操作的数据中任意的一个数据变为浮点数
23         System.out.println(x*1.0/y);//0.75
24         
25         //%的应用
26         System.out.println(x%y);//3 得到的是余数
27     }
28 }
 1 package com.itheima.demo01;
 2 /*
 3  * ++ --运算符使用 
 4  *     单独使用:放在操作数的前面和后面效果一样。(这种用法是我们比较常见的)
 5  *     参与运算使用:放在操作数前面,先自增或者自减,然后再参与运算
 6  *                放在操作数后面,先参与运算,再自增或者自减
 7  * 
 8  *     作用:就是对变量进行自增1或者自减1。
 9  */
10 public class OperatorDemo2 {
11     public static void main(String[] args) {
12          //定义变量
13         int x = 3;
14         int y = 4;
15         
16         //单独使用
17         //x++;
18         //y--;
19         ++x;
20         --y;
21         System.out.println("x:"+x+",y:"+y);//x:4,y:3
22         System.out.println("---------------------");
23         
24         //参与运算使用
25         int a = 3;
26         int b = 4;
27         
28         int c = a++;
29         int d = b--;
30         System.out.println(a);//4
31         System.out.println(b);//3
32         System.out.println(c);//3
33         System.out.println(d);//4
34         
35     }
36 }
 1 package com.itheima.demo01;
 2 
 3 public class OperatorTest {
 4     public static void main(String[] args) {
 5         int a = 10;
 6         int b = 10;
 7         int c = 10;
 8         
 9         a = b++; //a=10 b=11 c=10
10         c = --a; //a=9 b=11 c=9
11         b = ++a; //a=10 b=10 c=9
12         a = c--; //a=9 b=10 c=8
13         
14         System.out.println(a);
15         System.out.println(b);
16         System.out.println(c);
17     }
18 }
 1 package com.itheima.demo01;
 2 
 3 public class OperatorTest2 {
 4     public static void main(String[] args) {
 5         int x = 4;
 6         int y = (x++)+(++x)+(x*10);
 7         System.out.println(x);//6
 8         System.out.println(y);//70
 9     }
10 }
 1 package com.itheima.demo01;
 2 /*
 3  * +的用法
 4  * 1.加法
 5  * 2.正号
 6  * 3.字符串链接符
 7  */
 8 public class OperatorDemo3 {
 9     public static void main(String[] args) {
10          //定义变量
11         int x = 3;
12         int y = 4;
13         
14         //加法
15         System.out.println(x+y);
16         //正号
17         System.out.println(+y);
18         
19         System.out.println('a');
20         System.out.println('a'+1);
21         
22         //字符串连接
23         System.out.println("hello"+'a'+1);
24         System.out.println('a'+1+"hello");
25 /*
26 * 7
27 4
28 a
29 98
30 helloa1
31 98hello
32          */
33     }
34 }

赋值运算符

  • 基本的赋值运算符号:=
  • 扩展的赋值运算符号:+= -= *= /= %=
  •  1 package com.itheima.demo01;
     2 /*
     3  * 赋值运算符
     4  */
     5 public class OperatorDemo4 {
     6     public static void main(String[] args) {
     7          //定义变量
     8         int x =  10;
     9         System.out.println("------------");
    10         
    11         //定义一个变量
    12         //+= 把左边和右边做加法,然后赋值给左边
    13         int y = 10;
    14         y+=20;
    15         System.out.println(y);
    16     }
    17 }
     1 package com.itheima.demo01;
     2 /*
     3  * 面试题
     4  *     short s = 1; s=s+1;
     5  *     short s =1;s+=1;
     6  * 
     7  * 扩展的赋值运算符其实隐含了一个强制类型转换。等价于s = (s的数据类型)(s+1);
     8  */
     9 public class OperatorTest3 {
    10     public static void main(String[] args) {
    11         //short s = 1; 
    12         //s=s+1;
    13         //System.out.println(s);
    14         
    15         short s = 1;
    16         s+=1;//好像是s = s+1;
    17         System.out.println(s);
    18     }
    19 }

比较运算符

 1 package com.itheima.demo01;
 2 /*
 3  * 比较运算符
 4  */
 5 public class OperatorDemo5 {
 6     public static void main(String[] args) {
 7         int x = 3;
 8         int y = 4;
 9         int z = 3;
10         
11         System.out.println(x==y);//false
12         System.out.println(x==z);//true
13         System.out.println("-----------");
14         System.out.println(x != y);//true
15         System.out.println(x>z);//false
16         System.out.println(x>=y);//false
17         System.out.println(x<y);//true
18         System.out.println(x<=y);//true
19         System.out.println("-----------");
20     }
21 }

逻辑运算符

  • 逻辑运算符用于连接布尔类型表达式,在Java中不可以写出3<x<6,应该写成x>3&x<6.
  • "&"和"&&"的区别:单&时,左边无论真假,右边都进行运算;双&时,如果左边为真,右边参与运算,如果左边为假,那么右边就不参与运算;|和||的区别同理,双或时,左边为真,右边不参与运算。
  • 异或(^)与或(|)的不同之处:当左右都为true时,结果为false。
  •  1 package com.itheima.demo01;
     2 /*
     3  * 逻辑运算符
     4  */
     5 public class OperatorDemo6 {
     6     public static void main(String[] args) {
     7         int a = 3;
     8         int b = 4;
     9         int c = 5;
    10         
    11         //& 有false则false
    12         System.out.println((a>b)&(a>c));//false & false = false
    13         System.out.println((a>b)&(a<c));//false & true = false
    14         System.out.println((a<b)&(a>c));//ture & false = false
    15         System.out.println((a<b)&(a<c));//true & ture = true
    16         
    17         //|逻辑或 有true则true
    18         System.out.println((a>b)|(a>c));//false & false = false
    19         System.out.println((a>b)|(a<c));//false & true = false
    20         System.out.println((a<b)|(a>c));//ture & false = false
    21         System.out.println((a<b)|(a<c));//true & ture = true
    22         
    23         //^逻辑异或 相同则false 不同则true
    24         System.out.println((a>b)^(a>c));//false & false = false
    25         System.out.println((a>b)^(a<c));//false & true = false
    26         System.out.println((a<b)^(a>c));//ture & false = false
    27         System.out.println((a<b)^(a<c));//true & ture = true
    28         
    29         //!逻辑非 非false则true
    30         System.out.println(!(a>b));//!false = true
    31         System.out.println(!(a<b));//!true = false
    32     }
    33 }
     1 package com.itheima.demo01;
     2 /*
     3  * 逻辑运算符
     4  */
     5 public class OperatorDemo7 {
     6     public static void main(String[] args) {
     7         int a = 3;
     8         int b = 4;
     9         int c = 5;
    10         
    11         //&& 双与
    12         System.out.println((a>b)&&(a>c));//false & false = false
    13         System.out.println((a>b)&&(a<c));//false & true = false
    14         System.out.println((a<b)&&(a>c));//ture & false = false
    15         System.out.println((a<b)&&(a<c));//true & ture = true
    16         System.out.println("----------------------------");
    17 
    18     }
    19 }

位运算符

 1 package com.itheima.demo01;
 2 /*
 3  * 位运算符
 4  *     & | ^ ~
 5  * >> << >>>
 6  * 注意:
 7  *     要做位运算,首先要把数据转换位二进制
 8  */
 9 public class OperatorDemo8 {
10     public static void main(String[] args) {
11         int a = 3;
12         int b = 4;
13         
14         System.out.println(3&4);
15         System.out.println(3|4);
16         System.out.println(3^4);
17         System.out.println(~3);
18         System.out.println("----------------------------");
19 /*
20  * 0
21 7
22 7
23 -4
24  */
25     }
26 }

 

 1 package com.itheima.demo01;
 2 /*
 3  * ^ 的特点:一个数据对另一个数据位异或两次,该数本身不变
 4  */
 5 public class OperatorDemo9 {
 6     public static void main(String[] args) {
 7         int a = 3;
 8         int b = 4;
 9         
10         System.out.println(a^b^b);//3
11         System.out.println(a^b^a);//4
12 
13     }
14 }
 1 package com.itheima.demo01;
 2 /*
 3  * 面试题
 4  *     请自己实现两个整数变量的交换
 5  */
 6 public class OperatorTest4 {
 7     public static void main(String[] args) {
 8         int a = 10;
 9         int b = 20;
10         
11         //方式1:使用第三方变量
12 //        int c = a;
13 //        a = b;
14 //        b = c;
15 //        System.out.println("a:"+a+",b:"+b);
16 //        System.out.println("------------");//a:20,b:10
17         
18         //方式2:用位异或实现
19         //左边 aba
20         //右边 a^b
21         a = a^b;
22         b = a^b;
23         a = a^b;
24         
25         System.out.println("a:"+a+",b:"+b);//a:20,b:10
26     }
27 }

三目运算符

 1 package com.itheima.demo01;
 2 /*
 3  * 三目运算符
 4  */
 5 public class OperatorDemo10 {
 6     public static void main(String[] args) {
 7         int x = 100;
 8         int y = 200;
 9         
10         int z = ((x>y)?x:y);
11         System.out.println(z);//200
12     }
13 }
 1 package com.itheima.demo01;
 2 /*
 3  * 练习:
 4  * 获取两个整数中的最大值
 5  * 获取三个整数中的最大值
 6  * 比较两个整数是否相同
 7  */
 8 public class OperatorTest5 {
 9     public static void main(String[] args) {
10         //获取两个整数中的最大值
11         int x = 100;
12         int y = 200;
13         int max = (x>y?x:y);
14         System.out.println(max);
15         System.out.println("------");
16         //获取三个整数中的最大值
17         int a = 10;
18         int b = 30;
19         int c = 20;
20         //分两步
21         //A.先比较ab的最大值
22         //B.拿ab的最大值再和c进行比较
23         int temp = ((a>b)?a:b);
24         int max1 =(temp>c?temp:c);
25         System.out.println(max1);
26     }
27 }

键盘录入数据:

  • 我们目前在写入程序的时候,数据值都是固定的,但是实际开发中,数据值肯定是变化的,所以,我准备把数据改变为键盘录入,提高程序的灵活性。
  • 如何实现键盘录入数据呢?导包Scanner 创建对象Scanner sc = new Scanner(System in);接收数据 int x = sc.nextInt();
     1 package com.itheima.demo01;
     2 
     3 import java.util.Scanner;
     4 
     5 /*
     6  * 键盘录入
     7  */
     8 public class OperatorDemo11 {
     9     public static void main(String[] args) {
    10         //创建键盘录入数据对象
    11         Scanner sc = new Scanner(System.in);
    12         
    13         System.out.println("请输入一个数据:");
    14         int x = sc.nextInt();
    15         
    16         System.out.println("你输入的数据是:"+x);
    17     }
    18 }

    111

流程控制语句

  • 在一个程序执行的过程中,个条语句的执行顺序对程序对结果是有直接影响对,也就是说程序的流程对运行结果有直接的影响,所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能
  • 流程控制语句分类  
    • 顺序结构
    • 选择结构
    • 循环结构

顺序结构

 1 package com.itheima.demo02;
 2 /*
 3  * 顺序结构:从上往下,以此执行
 4  */
 5 public class ShunXuJieGouDemo {
 6         public static void main(String[] args) {
 7             System.out.println("程序开始了");
 8             System.out.println("程序结束了");
 9         }
10 }

选择结构

package com.itheima.demo02;
/*
 * 需求:根据用户的给定数值,现实该数值对应的星期。
 */
public class IfTest {
    public static void main(String[] args) {
        //1.定义变量,记录数据
        int week = 9;
        
        //2.通过判断结构语句对该变量进行判断
         if (week == 1)
                // 3,根据不同的条件,通过输出语句显示不同的结果。
                System.out.println(week + "对应的是星期一");
            else if (week == 2)
                System.out.println(week + "对应的是星期二");
            else if (week == 3)
                System.out.println(week + "对应的是星期三");
            else if (week == 4)
                System.out.println(week + "对应的是星期四");
            else if (week == 5)
                System.out.println(week + "对应的是星期五");
            else if (week == 6)
                System.out.println(week + "对应的是星期六");
            else if (week == 7)
                System.out.println(week + "对应的是星期日");
            else
                System.out.println(week + "没有对应的星期");
        }
}

猜你喜欢

转载自www.cnblogs.com/hellopaidaxing/p/10365722.html