zoukankan      html  css  js  c++  java
  • 2020.7.8

    学习内容:

    一、Java运算符

    1.算术运算符  

    (1)+  -  *  /  %

          对于除号:两个整型相除,若结果中出现了小数,此时将从结果中剔除小数部分

    (2)自 增 (++)

    •   前++ : 变量先加1后再算表达式
    •   后++ : 先计算表达式,然后再给变量加1
    1 package day01;
    2 public class VTest {
    3     public static void main(String[] args) {
    4         int a=0;
    5         a++;
    6         System.out.println("a++="+a++);
    7         System.out.println("a="+a);
    8     }
    9 }

     2. 赋值运算符  

    int i = 100 ; // 将100 赋值于变量 i 

     a+=2,相当于a=a+2;

     1 package day01;
     2 public class VTest {
     3     public static void main(String[] args) {
     4         int a=0;
     5         a+=2;
     6         int b=3;
     7         b-=1;
     8         int c=4;
     9         c*=2;
    10         int d=5;
    11         d/=2;
    12         int e=6;
    13         e%=2;
    14         System.out.println("a="+a);
    15         System.out.println("b="+b);
    16         System.out.println("c="+c);
    17         System.out.println("d="+d);
    18         System.out.println("e="+e);
    19     }
    20 }

    3. 关系运算符  

    >  >=  <  <=   ==  !=

    1 package day01;
    2 public class VTest {
    3     public static void main(String[] args) {
    4         boolean f=5>3;//5>3返回true,否则返回false    
    5         System.out.println("f="+f);
    6     }
    7 }

    4. 逻辑运算符 

    • 短路逻辑:与(&&)、或(| |) 

                                与逻辑有一假则为假,或逻辑有一真则为真。据此原理,左边执行满足一定条件后,右边式子将不再执行

    • 非短路逻辑:与(&)、非( | )

                                   不管左边表达式正确与否,都会执行右边表达式                             

            注:短路逻辑的效率比非短路逻辑的高

    • 取反( ! ):通常用在布尔表达式变量前

     

    5. 位运算符  

    按位与: 可用来对某些特定的位清零,如对数11010110第2位和第5位清零,可让该数与11101101进行按位与运算

    按位异或 : 可以用来使某些特定的位翻转 ; 可以实现两个值的交换而不使用临时变量

    左移: 若a= 00001111,a=a<<2,则 a = 00111100,高位左移后溢出,不起作用

               在不产生溢出的情况下,左移一位相当于乘2,而且用左移来实现乘法比乘法运算速度快

    右移:  与左移相似,移到右端的低位被舍弃,最高位则移入原来高位的值

    无符号右移: 与右移相似,不同的是最高位补 0

     

    6. 其他运算符 

    • 实例运算符 instanceof  : 用于测试一个对象是否是一个指定类的实例
     1 public class Test {
     2     public static void main(String[] args) {
     3         String s = "Hello";
     4         int[] a = {1,2};
     5         if(s instanceof String){
     6             System.out.println("true");
     7         }
     8         if(s instanceof Object){
     9             System.out.println("true");
    10         }
    11         if(a instanceof int[]){
    12             System.out.println("true");
    13         }
    14     }
    15 }

    • 内存分配运算符 new : 实例化一个对象,即为对象分配内存
    • 三目运算符 :布尔表达式 ?值1 : 值2

    7. 运算符的优先级 

     

     二、程序结构

     1. 顺序结构   :自上而下进行

     2. 选择结构   :if 语句 、if ... else  if 语句、 switch 语句

    (1)if 语句:if (布尔表达式) {...}

             布尔表达式为 true 时,执行里面的代码,否则不执行

    String name="某某”  ; System.out.println ( "name+",已经成年了!") ;  输出:某某已经成年了!

    (2)if ... else  if 语句

     (3)switch 语句

    import java.util.Scanner;
    public class SwitchDemo {

    public static void main(String[] args) {

    Scanner con=new Scanner(System.in);
    int num=con.nextInt();
    switch(num) {
    case 1:
    System.out.println("quqian");
    break;
    case 2:
    System.out.println("tuichu");
    break;
    case 3:
    System.out.println("zhuanzhang");
    break;
    default:
    System.out.println("qita");
    }
    }
    }

    3. 循环结构  :while 、do ... while 、 for 循环

    (1)while 循环

             重复执行循环体,直到条件式的布尔值为假为止,对于条件式的判断在执行语句之前进行

            

           将布尔表达式换成 true ,可以形成无限死循环

    (2) do ... while 循环

             重复执行循环体,直到条件式的布尔值为假为止,对于条件式的判断在执行语句之后进行

             

             注意:while(条件式)后面必须有分号

    (3)for 循环

              

             

              如果 3 个表达式都不写 ,则该循环为死循环 

          打印九九乘法表

     1 package day01;
     2 public class ForDemo {
     3     public static void main(String[] args) {
     4         for(int i=1;i<=9;i++) {
     5             for(int j=1;j<=i;j++) {
     6                 System.out.print(j+"*"+i+"="+(i*j)+"\t");
     7             }
     8             System.out.println();
     9         }
    10     }
    11 }

     (4)break 和 continue 语句 

              break 是中断当前循环,continue 是在循环体中继续向下执行

    • break 

             a.   在switch 语句中用来终止一个语句序列

             b.   用来退出一个循环

             c. 作为一种“先进”的 goto 语句来使用

    •  continue

     三、数组

    1. 一维数组  

     (2)数组的下标从 0 开始

     (3)数组的长度为 数组名 . length

     (4)数组的打印:

    1. 使用Arrays打印
    1 package day01;
    2 import java.util.Arrays;
    3 public class ArrayDemo {
    4     public static void main(String[] args) {
    5         int[] a= {1,2,3,4,5};
    6         System.out.println(Arrays.toString(a));
    7     }
    8 }

             2.使用 for 循环打印

    1 package day01;
    2 public class ArrayDemo {
    3     public static void main(String[] args) {
    4         int[] a= {1,2,3,4,5};
    5         for(int i=0;i<a.length;i++) {
    6         System.out.println("a["+i+"}="+a[i]);
    7     }
    8 }
    9 }

    用数组够成扑克牌

     1 package day01;
     2 public class CardDemo {
     3     public static void main(String[] args) {
     4         //定义字符串类型的数组,用来保存花色
     5         String[] suit = {"梅花","方快","红桃","黑桃"};
     6         //定义扑克牌的数字
     7         String[] number= {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
     8         //定义字符串类型的数组,保存扑克牌
     9         String[] cards=new String[54];
    10         //初始化扑克牌
    11         for(int i=0;i<cards.length-2;i++) {
    12             cards[i]=suit[i%suit.length]+number[i%number.length];
    13     }
    14     //加上大王和小王
    15     cards[cards.length-2]="大王";
    16     cards[cards.length-1]="小王";
    17     //打印扑克牌
    18     
    19         for(int i=0;i<cards.length;i++) {
    20         System.out.print(cards[i]+"\t");
    21         if(i%13==0&&i!=0){//打印13张牌的时候换一行
    22             System.out.println();
    23         }
    24         }
    25 }
    26 }

    2. 二维数组  

    (1)声明 : 类型 [ ] [ ] 名称

    (2)二维数组里存放的是一维数组 :类型 [ ] [ ]  名称 = {数组 1,数组 2,数组 3, 数组 n }

    (3)二维数组的下标:

     3. 多维数组 

    (1)定义 : 类型 [ ] [ ] [ ]... 名称 ;

     ATM实例

     1 package day01;
     2 import java.util.Scanner;//要想使用这个类,必须导入
     3 public class Main {
     4     @SuppressWarnings("resource")
     5     public static void main(String[] args) {
     6         System.out.print("请输入密码:");
     7         Scanner con =new Scanner(System.in);//用户从键盘中输入密码
     8         String line = con.nextLine();//如果密码等于1234的话跳到主页面
     9         //java中字符串内容相等使用equals比较
    10         if(line.equals("1234")){
    11             System.out.println("1.取款");
    12             System.out.println("2.退出");
    13             int num=con.nextInt();
    14             switch(num) {
    15             case 1:
    16                 System.out.println("1、取款100");
    17                 System.out.println("2、取款200");
    18                 System.out.println("3、取款500");
    19                 System.out.println("4、其他");
    20                 int money=con.nextInt();
    21                 switch(money) {
    22                 case 1:
    23                     System.out.println("取款100!");
    24                     break;
    25                 case 2:
    26                     System.out.println("取款200!");
    27                     break;
    28                 case 3:
    29                     System.out.println("取款500!");
    30                     break;
    31                 case 4:
    32                     System.out.print("请输入金额:");
    33                     int other =con.nextInt();
    34                     System.out.println("取款:"+other+"元!");
    35                     break;
    36                 }
    37                 break;
    38             case 2:
    39                 System.out.println("欢迎下次光临!退出!");
    40                 break;
    41             }
    42         }
    43         con.close();
    44     }
    45 }            

    遇到的问题:

    1. 在ATM问题中,出现  Resource leak: 'con' is never closed  警告,经过网上查询得知其意思是:“资源泄露:"扫描器"永远不会关闭”,即申请了一个输入流 system.in 在你用完这个后没有将其关闭,所以会出现警告。

         解决办法为:

         在main函数的最后加个 scanner.close();当然那个scanner是你new的Scanner对象。你要换成自己new的那个。 例如  你是   Scanner in = new Scanner(System.in); 那在 main函数最后加上的就应该是 in.close( )

    2. 不明白为什么当代码中含有汉字的时候,用cmd运行会出现错误

         解决办法为:将编写的Java源程序另存为编码为ANSI的文件(如下图)

     明天要学习的内容:

    2.13上机练习--3.1

     

  • 相关阅读:
    Linux查看占用内存前10的命令
    使用RestTemplate调用SpringCloud注册中心内的服务
    Eureka集群配置
    MySQL常用命令集合(偏向运维管理)
    pytest: error: unrecognized arguments报错解决
    MongoDB的安装
    MongoDB多条件分组聚合查询
    在排序数组中查找元素的第一个和最后一个位置
    搜索二维矩阵
    搜索旋转排序数组
  • 原文地址:https://www.cnblogs.com/ltw222/p/13268543.html
Copyright © 2011-2022 走看看