javaDay02.md

オペレーター(マスターする1-4キーポイント)

  1. 算術演算子:+、-、*、/、%、++、-
  2. 代入演算子:=
  3. 関係演算子:>、<、> =、<=、== 、! = Instanceof
  4. 論理演算子:&&、||、!
  5. ビット演算子:&、|、^、〜、>>、<<、>>>(理解!!!)
  6. 条件演算子:?、:
  7. 拡張代入演算子:+ =、-=、* =、/ =
        //二元运算符
        //ctrl+D :复制当前行到下一行

        int a = 10;
        int b = 20;
        int c = 30;
        int d = 40;

        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/(double)b);
long a = 122222222222222222L;
        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
//关系运算符返回的结果:正确,错误   布尔值

        int a = 10;
        int b = 20;
        int c = 22;

        System.out.println(c%b);  //取余   
        System.out.println(a>b);
        System.out.println(a<b);
        System.out.println(a==b);

自己インクリメントおよびデクリメント演算子

//++  --   自增   自减
        int a = 3;
        int b = a++;  //执行完这行代码后,先给b赋值,再自增
        //a++  a = a + 1
        System.out.println(a);

        int c = ++a; //执行完这行代码后,先自增,后赋值

        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
//幂运算
        //使用工具类来操作
        double pow = Math.pow(2,3);
        System.out.println(pow);

論理演算子

    //逻辑运算符
        //与(and)  或(or)  非(取反)

        boolean a = true;
        boolean b = false;

        System.out.println("a && b:"+(a && b));//逻辑与,两个变量都为真,结果才为true
        System.out.println("a || b :"+(a || b)); //逻辑或,两个变量有一个为真,则结果才为true
        System.out.println("! (a && b):"+!(a && b)); //逻辑非,如果为真,则变为假


        //短路运算
        int c = 5;
        boolean d = (c<4)&&(c++<4);//逻辑与,如果c<4为假,就不会执行c++<4;
        System.out.println(d);
        System.out.println(c); //c的值为5

ビット操作

 /*
      * A = 0011 1100
      * B = 0000 1101
      *
      * A&B = 0000 1100  //全1为1,有0为0
      * A|B = 0011 1101  //全0为0,有1为1
      * A^B = 0011 0001  //相同为0,不同为1
      * ~B  = 1111 0010  //取反
      *
      *
      * */

      //2*8=16   2*2*2*2
      //效率极高!!!
      //<<  *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); //16

三項演算子と要約

  int a = 10;
        int b = 20;

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

        System.out.println(a);

        //字符串连接符   +  ,String
         
        System.out.println(""+a+b); //3020
        System.out.println(a+b+"");  //50
 //三元运算符
        //x ? y : z
        //如果x==true,则结果为y,否则结果为z

        int score = 80;
        String type = score < 60 ?"不及格":"及格"; //必须掌握
        //if
        System.out.println(type);

パケットメカニズム

package pkg1[. pkg2[. pkg3……]];

通常、パッケージ名として会社のドメイン名の反転を使用します。

com.baidu.www

特定のパッケージのメンバーを使用できるようにするには、パッケージをJavaプログラムに明示的にインポートする必要があります。この関数を完了するには、「import」ステートメントを使用します

import package1[.package2……].(Classname|*);
package com.kuang.operator;

import com.kuang.operator.*; //导入全部  *为通配符

javadoc

javadocコマンドは、独自のAPIドキュメントを生成するために使用されます

パラメータ情報

  1. @著者の著者名
  2. @versionバージョン番号
  3. @sinceは、最も古いjdkバージョンが必要であることを示します
  4. @paramパラメータ名
  5. @戻り値
  6. @throws例外がスローされました
package com.kuang.operator;

/**
 * @author Hao
 * @version 1.0
 * @since 1.8
 */



public class Demo10 {
    String name;


    /**
     * @author Hao
     * @param name
     * @return
     * @throws Exception
     */
    public String test(String name) throws Exception{
        return name;
    }
    //通过命令行   javadoc 参数 java文件
    //面向百度编程
    
}

Javaフロー制御

  1. ユーザーインタラクションスキャナー
  2. 順次構造
  3. 構造を選択
  4. 環状構造
  5. 中断して続行

スキャナーオブジェクト

Scanneryクラスを通じてユーザー入力を取得する

基本的な構文:

Scanner s = new Scanner(System.in);
import java.util.Scanner;

public class Demo3 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入字符串:");

        String str = scanner.nextLine();

        System.out.println("输入的内容为:"+str);
        scanner.close();
    }

}

入力文字列は、Scannerクラスのnext()メソッドとnextLine()メソッドによって取得されます。読み取る前に、通常、hasNext()およびhasNextLine()を使用して、入力データがあるかどうかを確認する必要があります。

next()hasNext()
  1. 有効な文字が読み込まれた後に入力を完了する必要があります
  2. 次の()メソッドは、有効な文字を入力する前に遭遇した空白を自動的に削除します。
  3. 有効な文字を入力した後でのみ、その後に入力したスペースをセパレータまたはターミネータとして使用できます
  4. next()はスペースを含む文字列を取得できません
import java.util.Scanner;

public class Demo1 {
    public static void main(String[] args) {

        //创建一个扫描器对象,用于存放键盘收据
        Scanner scanner = new Scanner(System.in);
        System.out.println("使用next方法接受:");

        //判断用户有没有输入字符串
        if (scanner.hasNext()){
            String  str = scanner.next();  //程序会等待用户输入完毕
            System.out.println("输出的内容是:"+str);

        }
        //凡是属于IO流的类如果不关闭会一直占用资源,要养成好习惯用完就关掉
        scanner.close();


    }
next()hasNextLine()
  1. Enterを終了文字として使用すると、NextLine()メソッドはキャリッジリターンを入力する前にすべての文字を返します。
  2. 空白にする
import java.util.Scanner;

public class Demo2 {
    public static void main(String[] args) {
        //创建一个扫描器对象,用于存放键盘收据
        Scanner scanner = new Scanner(System.in);
        System.out.println("使用nextLine方式接收:");

        //判断用户有没有输入字符串
        if (scanner.hasNextLine()){
            //使用nextLine方式接收
            String str = scanner.nextLine();
            System.out.println("输入的内容为:"+str);
        }

        //凡是属于IO流的类如果不关闭会一直占用资源,要养成好习惯用完就关掉
        scanner.close();
    }

スキャナーの高度な使用法

import java.util.Scanner;

public class Demo4 {
    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("输入的不是小数数据!");
        }

練習

import java.util.Scanner;

public class Demo5 {
    public static void main(String[] args) {
        //我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入数字:");
        //和
        double sum = 0;

        //计算输入了多少个数字
        int i = 0;
        //通过循环判断是否还有输入,并在里面对每一次进行求和和统计
        while (scanner.hasNextDouble()) {
            double x = scanner.nextDouble();
            i = i + 1;  // i++
            sum = sum + x;
            System.out.println("你输入了第"+i+"个数据,当前结果sum="+sum);
        }
        System.out.println("这"+i+"个数字的和是:"+sum);
        System.out.println("这"+i+"个数字的平均值是:"+(sum/i));

        scanner.close();
    }

}

順次構造

  1. javaの基本構造はシーケンシャル構造であり、特に指定のない限り、文ごとに順番に実行されます。
  2. シーケンシャル構造は最も単純なアルゴリズム構造です
  3. どんなアルゴリズムにも欠かせない基本的なアルゴリズム構造

構造を選択

  1. 単一選択構造の場合
  2. 二重選択構造の場合
  3. 多肢選択式の場合
  4. ネストされたif構造
  5. 複数選択構造を切り替える

単一選択構造の場合

構文:

if(){
    //如果布尔表达式为true将执行的语句
}

import java.util.Scanner;

public class Demo1 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入内容:");
        String s = scanner.nextLine();

        // equals()判断字符串是否相等
        if (s.equals("Hello")){
            System.out.println(s);

        }
        System.out.println("End");
        scanner.close();
    }

二重選択構造の場合

構文:

if(布尔表达式){
    //如果布尔表达式的值为true
}else{
    //如果布尔表达式的值为false
}
import java.util.Scanner;

public class Demo2 {
    public static void main(String[] args) {
        //考试分数大于60分就是及格,小于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();
    }
}

多肢選択式の場合

構文:

if(布尔表达式1){
    //如果布尔表达式1的值为true执行代码
}else if(布尔表达式2){
    //如果布尔表达式2的值为true执行代码
}else{
    //如果以上布尔表达式都不为true执行代码
}
import java.util.Scanner;

public class Demo3 {
    public static void main(String[] args) {
        //考试分数大于60分就是及格,小于60分就不及格
        Scanner scanner = new Scanner(System.in);
        /*
        if 语句至多有1个else语句,else 语句在所有的 else if 语句之后。
        一旦其中一个 else if 语句检测为 true, 其他的 else if 以及 else 语句都将跳过执行。
         */
        
        
        System.out.println("请输入成绩:");
        int score  = scanner.nextInt();

        if (score==100){
            System.out.println("S级");
        }else if (score<100 && score>=90){
            System.out.println("A级");
        }else if (score<90 && score>=80){
            System.out.println("B级");
        }else if (score<80 && score>=70){
            System.out.println("C级");
        }else if (score<70 && score>=60){
            System.out.println("D级");
        }else if (score<60 && score>=0){
            System.out.println("不及格");
        }else{
            System.out.println("成绩不合法!");
        }


        scanner.close();

    }
}

ネストされたif構造

構文:

if(布尔表达式 1){
    ////如果布尔表达式 1的值为true执行代码
    if(布尔表达式 2){
        ////如果布尔表达式 2的值为true执行代码
    }
}

複数選択構造を切り替える

switchステートメントの変数の型は次のとおりです。
  1. byte、short、intまたはchar
  2. スイッチは文字列型をサポートします
  3. ケースラベルは文字列定数またはリテラルである必要があります

構文:

switch(expression){
    case value :
        //语句
        break;  //可选
    case value :
        //语句
        break;  //可选
    //你可以有任意数量的case语句    
    default :  //可选
        //语句
    
}
public class Demo4 {
    public static void main(String[] args) {
        // case穿透(无break)   //switch 匹配一个具体的值

        char grade = 'F';
        switch (grade){
            case 'A':
                System.out.println("优秀");
                break;
            case 'B':
                System.out.println("良好");
                break;
            case 'C':
                System.out.println("中等");
                break;
            case 'D':
                System.out.println("及格");
                break;
            case 'E':
                System.out.println("不及格");
            default:
                System.out.println("未知等级");

        }
    }
}

コード01

package sturct;

public class Demo5 {
    public static void main(String[] args) {
        String name = "小明";

        //字符的本质还是数字
        //反编译  java---class(字节码文件)-------反编译(IDEA)

        switch (name){
            case "小明":
                System.out.println("小明");
                break;
            case "孙悟空":
                System.out.println("孙悟空");
                break;
            default:
                System.out.println("弄啥嘞!");
        }
    }
}

コード02(逆コンパイルされたコード)

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package sturct;

public class Demo5 {
    public Demo5() {
    }

    public static void main(String[] args) {
        String name = "小明";
        byte var3 = -1;
        switch(name.hashCode()) {
        case 756703:
            if (name.equals("小明")) {
                var3 = 0;
            }
            break;
        case 23271124:
            if (name.equals("孙悟空")) {
                var3 = 1;
            }
        }

        switch(var3) {
        case 0:
            System.out.println("小明");
            break;
        case 1:
            System.out.println("孙悟空");
            break;
        default:
            System.out.println("弄啥嘞!");
        }

    }
}

環状構造

  1. ループ
  2. whileループ
  3. forループ
  4. Java5は主に配列に使用される拡張forループを導入します

ループ

構文:

while(布尔表达式){
    //循环内容
}
  1. ブール式がtrueである限り、ループは実行を続けます。
  2. ほとんどの場合、ループを停止します。ループを終了するには、式を無効にする方法が必要です。
  3. サーバー要求応答の監視など、ごく一部の状況では、ループを常に実行する必要があります。
  4. ループ条件が常にtrueの場合は、無限ループ[デッドループ]が発生するため、通常のビジネスプログラミングでは、無限ループを回避するようにしてください。プログラムのパフォーマンスに影響するか、プログラムがフリーズしてクラッシュします。
package sturct;

public class Demo6 {
    public static void main(String[] args) {
        //输出1~100
        int i = 0;
        while (i<100){
            i++;
            System.out.println(i);
        }

    }
}
package sturct;

public class Demo7 {
    //死循环
    public static void main(String[] args) {
        while (true){
            //等待客户端连接
            //定时检查
            //。。。。。
        }
    }
}

練習:

package sturct;

public class Demo8 {
    public static void main(String[] args) {
        //计算1+2+3+……+100=?
        //高斯的故事
        int i = 0;
        int sum = 0;

        while (i<=100){
            sum = sum + i;
            i++;
        }
        System.out.println(sum);
    }
}

おすすめ

転載: www.cnblogs.com/Mr-Sunday/p/12694306.html