java学习之旅(day.04)

运算符

  • 算术运算符:+ ,- ,* ,/,%(取余或模运算), ++(自增),-- (自减)

  • 赋值运算符:=

  • 关系运算符:>, <,>=, <=, ==, !=(不等于),instanceof

  • 逻辑运算符:&&,||, !

    以下了解即可

  • 位运算符:&, |,^ ,~ ,>> ,<<, >>>

  • 条件运算符:?:

  • 扩展赋值运算符:+= ,-= ,*=, /=

public class Demo01 {
    public static void main(String[] args) {
   //二元运算符
   //Ctrl+D:复制当前行到下一行
        int a=10;
        int b=20;
        int c=25;
        int d=25;
        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/(double)b);
    }
}
================================================================
public class Demo02 {
    public static void main(String[] args) {
        long a=1231561656L;
        int b=123;
        short c=10;
        byte d=8;

        System.out.println(a+b+c+d); //long
        System.out.println(b+c+d);   //int
        System.out.println(c+d);     //int
        //如果有long,则结果为long
        //如果有double,则结果为double
        //如果没有long,则结果为int
    }
}
=================================================================
public class Demo03 {
    public static void main(String[] args) {
        //关系运算符返回的结果:正确,错误   布尔值
        int a=10;
        int b=20;
        System.out.println(a>b);    //false
        System.out.println(a==b);   //false
        System.out.println(a<b);    //true
    }
}
==================================================================
public class Demo04 {
    public static void main(String[] args) {
        int a=3;
        int b=a++;//执行完这行代码后,先给b赋值,再自增
        int c=++a;//执行完这行代码前,先自增,再给c赋值
        System.out.println(a); //5
        System.out.println(b);//3
        System.out.println(c);//5

        //幂运算:很多运算,需要借助工具类来操作
        //如:2*2*2
         double pow=Math.pow(2,3);
        System.out.println(pow);
    }
}
==================================================================
//逻辑运算符
public class Demo05 {
    public static void main(String[] args) {
       // 与   或     非(非你即我,取反)
        boolean a=true;
        boolean b=false;
        System.out.println("a&&b:"+(a&&b));//逻辑与运算
        System.out.println("a||b;"+(a||b));//逻辑或运算
        System.out.println("!(a&&b);"+!(a&&b));//逻辑非运算
        //如果是真,则为假,若是假,则为真
        //短路运算:b&&a,若b为假,则不会再计算后面的b&&a,直接就停止了
        int c=5;
        boolean d=(c<4)&&(c++<4);
        System.out.println(c); //5
        System.out.println(d);//false,所以,判断c<4为假,后面的不再执行          
 ==================================================================
package operator;
public class Demo06 {
    public static void main(String[] args) {
      //位运算
        /*
        A=0011 1100
        B=0000 1101
        A&B 0000 1100    上下两个位比较,如果都为1,才为1
        A|B 0011 1101    上下位都为0,结果为0,否则为1
        ~B(取反) 1111 0010
        A^B(异或运算)0011 0001 如果两个位置相同,则0,否则为1

        2*8怎么运算最快?
        <<(左移):相当于*2,>>(右移):相当于/2 
        0000 0000       0
        0000 0001       1
        0000 0010       2
        0000 0011       3
        0000 0100       4
        0000 1000       8
        0001 0000       16
         */
        System.out.println(2<<3);
    }
}
=====================================================================
package operator;
public class Demo07 {
    public static void main(String[] args) {
        int a=10;
        int b=20;
        a+=b;  //a=a+b
        System.out.println(a);  //30
        //字符串连接符  +,在+两侧,只要有一侧出现了string类型,
        //则会把另一侧也转换为string(字符串),再进行连接
        System.out.println(""+a+b);
        System.out.println(a+b+"");
        //如果字符串“”在+前,后面的会进行拼接
        //如果字符串“”在+后,前面的会先进行运算再拼接
    }
}
======================================================================
package operator;
//三元运算符
public class Demo08 {
    public static void main(String[] args) {
      //x ? y : z
      //如果x==true,则结果为 y,否则结果为z
      int score =80;
      String type =score <60?"不及格": "及格";
        System.out.println(type);
    }
}

运算符的优先级:

包机制

为了更好的组织类,java提供了包机制,用于区别类名的命名空间

包的本质就是个文件夹

包语句的语法格式:

package pkg1[.pkg2[.pkg3...]]

一般利用公司域名倒置作为包名

如:www.baidu.com 要建的包名为:com.baidu.www

为了能够使用某一个包的成员,我们需要在java程序中明确导入该包,使用import语句可完成此功能

import package1[.package2...].(classname|*);

Java Doc

javadoc命令是用来生成自己API文档的(将注释信息生成一个帮助文档)

参数信息

  • @author 作者名
  • @version 版本名
  • @since 指明需要最早使用的jdk版本
  • @param 参数名
  • @return 返回值情况
  • @throws 异常抛出情况
package com.zhang.base;
/**
 * @author zhang
 * @version 1.0
 * @since 1.8
 */
public class Doc {
    String name;

    /**
     * @author zhang
     * @param name
     * @return
     * @throws Exception
     */
    public String test(String name) throws Exception{
        return name;
    }
}
  1. 使用命令行cmd生成javaDoc文档(格式:javadoc 参数 jav文件)

cmd中输入:javadoc -encoding UTF-8 -charset UTF-8 Doc.java

javadoc 命令

Doc.java:文件名

中间加的参数-encoding UTF-8 -charset UTF-8是为了不使文档乱码,文档中有中文,有时会乱码

  1. 使用IDEA生成javaDoc文档

学习查找

java 流程控制

java提供了一个工具类,可以获取用户的输入,进而实现程序和人的交互。java.util.Scanner时java5的新特征,可以通过Scanner类来获取用户的输入

基本语法:

Scanner scanner=new Scanner(System.in);

通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前一般需要使用hasNext()与hasNextLine()判断是否还有输入的语句

package com.zhang.scanner;
import java.util.Scanner;
public class Demo01 {
    public static void main(String[] args) {
    //创建一个扫描对象,用于接收键盘数据
     Scanner scanner =new Scanner(System.in);
        System.out.println("使用next方式接收:");
        //判断用户有没有输入字符串
        //下面这句也可写为:if (scanner.hasNext())
        if (scanner.hasNext()==true){
            //使用next方式接收
            String str =scanner.next();
            System.out.println("输出内容为:"+str);
        }
        //凡是IO流的类如果不关闭会一直占用资源
        scanner.close();//scanner用完后及时关掉,节省空间
    }
}
===================================================================
package com.zhang;

import java.util.Scanner;

public class Demo02 {
    public static void main(String[] args) {
        //创建一个扫描对象,用于接收键盘数据
        Scanner scanner = new Scanner(System.in);
        System.out.println("使用nextline方式接收:");
        //判断用户有没有输入字符串
        //下面这句也可写为:if (scanner.hasNextLine())
        if (scanner.hasNextLine() == true) {
            //if判断在这可以去掉,上面那个程序也一样
            //使用nextLine方式接收
            String str = scanner.nextLine();
            System.out.println("输出内容为:" + str);
        }
        //凡是IO流的类如果不关闭会一直占用资源
        scanner.close();//scanner用完后及时关掉,节省空间
    }
}

next()

  • 一定要读取到有效字符后才可以结束输入(要手动输入)
  • 对输入有效字符之前遇到的空白,next()会自动将其去掉
  • 只有输入有效字符后才将其后面输入的空白作为分隔符或结束符
  • next()不能得到有空格的字符串
  • 总之,一句话,在输入有效字符串前任你打空格,但输入了一个字符串后不能再出现空格,如果出现,只输出空格前的部分。

nextLine()

  • 以enter作为结束符,也就是说,nextLine()方法返回的是输入回车之前的所有字符
  • 可以获得空白
package com.zhang.scanner;
import java.util.Scanner;
public class Demo04 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        //从键盘接收数据
        int i = 0;
        float f = 0.0f;
        System.out.println("请输入整数:");
        if (scanner.hasNextInt()) {//看是不是整数
            i = scanner.nextInt();
            System.out.println("整数数据:" + i);

        } else {
            System.out.println("输入的不是整数");
        }
        System.out.println("请输入小数:");
        if (scanner.hasNextFloat()) {//看是不是小数
            f = scanner.nextFloat();
            System.out.println("小数数据:" + f);
        } else {
            System.out.println("输入的不是小数");
        }
         scanner.close();
    }
    }
================================================================
package com.zhang.scanner;
import java.util.Scanner;
public class Demo05 {
    public static void main(String[] args) {
        //输入多个数字并求和与平均数,每输入一个数字用回车确认,
        // 通过输入非数字来结束输入并输出执行结果
       Scanner scanner= new Scanner(System.in);
        double sum=0;
        int m=0;//计算输入了多少个数字
        while(scanner.hasNextDouble()){
            double x=scanner.nextDouble();
            m=m+1;
            sum=sum+x;
            System.out.println("你输入了第"+m+"个数据,当前结果为sum=:"+sum);
        }
        System.out.println(m+"个数的和为:"+sum);
        System.out.println(m+"个数的平均值为:"+(sum/m));

        scanner.close();
    }
}

顺序结构

顺序结构是java的基本结构,除非特别指明,否则就按顺序一句一句执行,顺序结构是最简单的算法结构

选择结构

  1. if单选择结构

语法表达:

if(布尔表达式){

//如果布尔表达式为true执行的语句

}

  1. if双选择结构

语法表达:

if(布尔表达式){

//如果布尔表达式为true执行的语句

}else{

//如果布尔表达式为false执行的语句

}

package com.zhang.structure;
import java.util.Scanner;
public class IfDemo02 {
    public static void main(String[] args) {
        //考试分数大于60分及格,反之,不及格
     Scanner scanner=new Scanner(System.in);
        System.out.println("请输入分数:");
        int score=scanner.nextInt();
        if(score>60){
            System.out.println("及格");
        }else{
            System.out.println("不及格");
        }
     scanner.close();
    }
}
  1. if多选择结构

语法结构

if(布尔表达式1){

//如果布尔表达式1的值为true执行代码

}else if(布尔表达式2){

//如果布尔表达式2的值为true执行代码

}else if(布尔表达式3){

//如果布尔表达式3的值为true执行代码

}else{

//如果以上布尔表达式都不为true执行代码

}

package com.zhang.structure;
import java.util.Scanner;
public class IfDemo03 {
    public static void main(String[] args) {
        //考试分数大于60分及格,反之,不及格
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入分数:");
        int score=scanner.nextInt();
        if(score==100){
            System.out.println("恭喜满分");
        }else if(score>=90&&score<100){
            System.out.println("优秀");
        }else if(score>=60&&score<90) {
            System.out.println("良好");
        }else {
            System.out.println("不及格");
        }
        scanner.close();
    }
}

嵌套的if结构:可以在一个if里面嵌套另一个if语句

语法结构:

if(布尔表达式1){

//如果布尔表达式1的值为true执行代码

if(布尔表达式2){

//如果布尔表达式2的值为true执行代码

}

}

switch的多选择结构

posted on 2021-01-04 23:43  懵逼的程序小白  阅读(62)  评论(0)    收藏  举报