JAVA学习之旅---上

Java

what ?

​ Java 是一门不纯粹的面相对象(oop;Object Oriented Programming)的语言

​ JDK : Java开发工具包(Java Develpment Toolkit) -----基础工程打包成包以供方便调用

​ JRE : Java运行时环境(Java Runtime Envirnoment)

Why?

​ 跨平台 : Write once,run anywhere !

​ jdk : dt.jar / tools.jar

在这里插入图片描述

Where?

​ JavaSE : Java Standard Edition 窗口程序 | C/S(客户端-Client/应用端-Sever程序 —java标准版 TCP/IP | UDP—基于网络协议

​ JavaEE : Java Enterprice Edition 基于浏览器与服务器的程序 B/S(Browser/Sever) —java企业版 HTTP(S)—基于网络协议

​ JavaME : Java Mobile Edition —java移动版

How to learn Java?

please leaning with me !!!

1、java 类文件的基本结构

package PACKAGE_NAME.xxx;

public class CLASS_NAME {
    //java程序入口
    public static void main(String[] args){
        //...
    }
}

2、java中的注释

what?

​ 注释暂时不用的代码

​ 解释一段代码,供自己后期阅读,或者团队其他成员参考

how?

1、单行注释

​ //…

2、多行注释

​ /*

​ …

​ …

​ */

3、文档注释

​ 添加解释说明

/**
 * @author 羊群满满 
 * @version v1.2.3
 * @since v1.0
 */

3、java 的基本数据类型

what?

​ 数据 : 一个特定含义的符号;
在这里插入图片描述

how?

3.1、数据类型转换

​ 1、 需要转换的类型间相互兼容,比如:将小数转换为整数;

​ 2、小数类型的空间 > 整数类型的空间;

​ 3、自动类型转换:小转大 整数转小数;

​ 4、 强制类型转换:大转小 小数转为整数,会导致精度丢失(舍弃小数部分)

//3、自动类型转换:小转大	整数转小数
int a = 5;
double b = a;
System.out.println(b);

//4、强制类型转换:大转小	小数转整数,导致精度丢失(舍弃小数部分)
double c = 5.123;
int d = (int)c;
System.out.println(c);
System.out.println(d);

//控制台输出
5.0
5.123
5

4、java中的变量

what?

​ 一种储存空间的表示!!!

​ 变量: variable

why?

​ 赋予值特定的含义

​ 便于重复使用

how?

​ 数据类型 变量名称 = 值;

public class Test {
    public static void main(String[] args) {
        //字符变量
        //建变量的目的:赋予值特定的含义;便于重复使用
        //在java中,所有参与计算的量必须创建变量存储

        //符号都对应一个唯一的 unique code : unicode
        char gender = '男';
        String name = "szy";
        byte age = 127;
        short number = 32767;
        int population = 2100000000;  //默认为int
        long distance = 999999999999999999L; // 尾缀强转
        float price = 8.8F;  //尾缀强转为F
        double price2 = 8.0;  // 小数默认为double
        boolean married = false;

        System.out.println((int)gender);
        System.out.println(Float.MAX_VALUE);
        System.out.println(Float.MIN_VALUE);
        System.out.println(Double.MAX_VALUE);
        System.out.println(Double.MIN_VALUE);
    }
}

//1、声明:数据类型 变量名;
int age;
//2、赋值:变量名 = 值;
age = 18;
//3、使用;
System.out.println(age);

//声明的同时赋值
int age = 18;

//同时声明多个同类型的变量并赋值(阔以选择性赋值)
int ageZs;
int ageLs;
int ageWw;

int agwZs,ageLs = 18,ageWw;


result:
C:\Java\jdk1.8.0_221\bin\java.exe...
30007					Float.MAX_VALUE
3.4028235E38
1.4E-45
1.7976931348623157E308
4.9E-324

Process finished with exit code 0

5、java的常量

what?

常量值又称为字面常量,它是通过数据直接表示的,因此有很多种数据类型,像整型和字符串型等

how?

常量的命名规则:全部大写!!!

​ 语法:final数据类型 常量名称 = 值;

​ 常量名称长以下划线连接;

final int MY_CITY  = 5;

所有的变量命名都不阔以是关键字

变量的命名规则

​ 1、首字符,必须是【小写字母】,_¥$

​ 2、 其他字符,也阔以是数字

​ 3、驼峰 myFirstName

​ 4、 见名知意

类的命名规则

​ 1、所有的单词首字母大写

​ 2、 见名知意

6、java控制台输出

System.out.println();

7、java 控制台的输入

//导入工具类型
import java.util.Scanner;
public class Personinfo {
    public static void main(String[] args){
        //声明个人姓名、年龄、性别、体重、婚否变量
        String name;
        byte age;
        char gender;
        float weight;
        boolean married;

        //创建工具对象
        Scanner input = new Scanner(System.in);
        // 控制台输入赋值
        System.out.print("请输入您的名字:");
        name = input.next();
        System.out.print("请输入您的年龄:");
        age = input.nextByte();
        System.out.print("请输入您的性别:");
        gender = input.next().charAt(0);   //无char型,则使用字符串的方法并提取第一个字符!!!
        System.out.print("请输入您的体重:");
        weight = input.nextFloat();
        System.out.print("您是否结婚?");
        married = input.nextBoolean();

        //控制台输出
        System.out.println("\n-----个人信息-----");
        System.out.println("姓名:" + name);
        System.out.println("年龄:" + age);
        System.out.println("性别:" + gender);
        System.out.println("体重:" + weight);
        System.out.println("婚否:" + married);
        System.out.println("--------------\n");
    }
}

9、java中的运算符

what?

​ 计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。

  • 算术运算符
  • 关系运算符
  • 位运算符
  • 逻辑运算符
  • 赋值运算符
  • 其他运算符

how?

9.1、算数运算符

what?

算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。

how?

​ 表格中的实例假设整数变量A的值为10,变量B的值为20

算数运算符描述示例
+加法 - 相加运算符两侧的值A + B 等于 30
-减法 - 左操作数减去右操作数A – B 等于 -10
*乘法 - 相乘操作符两侧的值A * B等于200
/除法 - 左操作数除以右操作数 注意除0异常B / A等于2
%取余 - 左操作数除以右操作数的余数B%A等于0
++自增: 操作数的值增加1B++ 或 ++B 等于 21(区别详见下文)
自减: 操作数的值减少1B-- 或 --B 等于 19(区别详见下文)
>>右移一位等同于除2A >> 1 => A = 5
<<左移一位等同于乘2B << 1 => B = 40
public class Test {
 
  public static void main(String[] args) {
      int age1 = 18, age2 = 26;
      int age3 = age1+age2;
      System.out.println("第一个年龄"+age1+"第二个年龄"+age2);
      System.out.println("age1+age2="+age3);
      System.out.println(age1*age1);
      System.out.println(1/0);
     System.out.println("a++   = " +  (a++) );
     System.out.println("a--   = " +  (a--) );
     // 查看  d++ 与 ++d 的不同
     System.out.println("d++   = " +  (d++) );
     System.out.println("++d   = " +  (++d) );
  }
}

//结果如下:
第一个年龄18第二个年龄26
age1+age2=44
324
a++   = 10
a--   = 11
d++   = 25
++d   = 27

a++ 与++a的解析:

  • int b = ++a; 拆分运算过程为: a=a+1=n; b=a=n, 最后结果为b=n,a=n
  • int d = --c; 拆分运算过程为: c=c-1=n; d=c=n, 最后结果为d=n,c=n

前缀自增自减法(++a,–a): 先进行自增或者自减运算,再进行表达式运算。

后缀自增自减法(a++,a–): 先进行表达式运算,再进行自增或者自减运算

9.2、关系运算符(比较运算符)

​ 表格中的实例假设整数变量A的值为10,变量B的值为20

关系运算符描述示例
==检查如果两个操作数的值是否相等,如果相等则条件为真。(A == B)为假。
!=检查如果两个操作数的值是否相等,如果值不相等则条件为真。(A != B) 为真
>检查左操作数的值是否大于右操作数的值,如果是那么条件为真。(A> B)为假
<检查左操作数的值是否小于右操作数的值,如果是那么条件为真。(A <B)为真
>=检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。(A> = B)为假
<=检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。(A <= B)为真

注意:【关系表达式】结果为布尔值

public class Test {
 
  public static void main(String[] args) {
    int a = 10, b = 20;
    System.out.println("a == b = " + (a == b) );
    System.out.println("a != b = " + (a != b) );
    System.out.println("a > b = " + (a > b) );
    System.out.println("a < b = " + (a < b) );
    System.out.println("b >= a = " + (b >= a) );
    System.out.println("b <= a = " + (b <= a) );
    }
}

//运行结果如下:
a == b = false
a != b = true
a > b = false
a < b = true
b >= a = true
b <= a = false

9.3、逻辑运算符

【短路:二元逻辑运算符,如果左侧表达式能够确定最终结果,则右侧表达式不执行】

how?

​ 下表列出了逻辑运算符的基本运算,假设布尔变量A为真,变量B为假

逻辑运算符描述示例
&&称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。(A && B)为假。
| |称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。(A | | B)为真。
称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。!(A && B)为真。

简而言之:&& 都为true为true,否则为false

​ || 都为false为false,否则为true

​ ! 非true即false,非false即true

注意: 且、或 都为短路语

public class MothDay {
    public static void main(String[] args){
        // 根据年和月,判定该年该月有多少天
        // 大月31天:1,3,5,7,8,10,12
        // 小月30天:4,6,9,11
        // 2月平年28天,闰年29天
        // 【能被4整数且不能被100整除】,或者【能被400整除】

        int year=2020,month=2,day=0;

        //2月,由是否闰年决定天数
        if(month==2){
            if(year%4==0 && year%100!=0 || year%400==0){
                day = 29;
            }else{
                day = 28;
            }
        }else if(month<8){ //<8的月份:奇数月份为大月,偶数月份为小月
            if(month%2==0){
                day = 30;
            }else{
                day = 31;
            }
        }else{ //>=8的月份:奇数月份为小月,偶数月份为大月
            if(month%2==0){
                day = 31;
            }else{
                day = 30;
            }
        }
        System.out.println(year+"年"+month+"月有"+day+"天");
    }
}

//运行结果如下:
20202月有29

9.4、赋值运算符

how?
赋值运算符描述例子
=简单的赋值运算符,将右操作数的值赋给左侧操作数C = A + B将把A + B得到的值赋给C
+ =加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数C + = A等价于C = C + A
- =减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数C - = A等价于C = C - A
* =乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数C * = A等价于C = C * A
/ =除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数C / = A,C 与 A 同类型时等价于 C = C / A
(%)=取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数C%= A等价于C = C%A
public class Practice {
    public static void main(String[] args){
        // 三位水仙花数:三位数【3个数位】上数值的【立方和】【等于其自身】

        final int UNIT = 10;
        int num = 153,copy = num,ones = 0,tens = 0,hundreds = 0;
        double sum = 0;

        //提取三个数位上的数值
        ones = num%UNIT;
        num /= UNIT;
        tens = num%UNIT;
        num /= UNIT;
        hundreds = num;

        //求立方和
        //sum = ones*ones*ones+tens*tens*tens+hundreds*hundreds*hundreds;
        sum = Math.pow(ones,3)+Math.pow(tens,3)+Math.pow(hundreds,3);

        //逻辑判断
        if(sum==copy){
            System.out.println(copy+"是水仙花数");
        }else{
            System.out.println(copy+"非水仙花数");
        }
    }
}

//运行结果如下:
153是水仙花数

9.5、三元(目)运算符

what?

​ 严格意义上属于赋值运算符

​ 该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。

how?

​ 数据类型 变量 = 逻辑表示式 ?值1:值2;

public class Test {
   public static void main(String[] args){
      int a , b;
      a = 10;
      // 如果 a 等于 1 成立,则设置 b 为 20,否则为 30
      b = (a == 1) ? 20 : 30;
      System.out.println( "Value of b is : " +  b );
 
      // 如果 a 等于 10 成立,则设置 b 为 20,否则为 30
      b = (a == 10) ? 20 : 30;
      System.out.println( "Value of b is : " + b );
   }
}

//运行结果如下
Value of b is : 30
Value of b is : 20

10、java的运算符的优先级

what?

​ 当多个运算符出现在一个表达式中,谁先谁后呢?这就涉及到运算符的优先级别的问题。在一个多运算符的表达式中,运算符优先级不同会导致最后得出的结果差别甚大。

​ 例如,(1+3)+(3+2)*2,这个表达式如果按加号最优先计算,答案就是 18,如果按照乘号最优先,答案则是 14。

​ 再如,x = 7 + 3 * 2;这里x得到13,而不是20,因为乘法运算符比加法运算符有较高的优先级,所以先计算3 * 2得到6,然后再加7。

how?

优先级运算符结合性
1()从左向右
2!、+、-、++、–从右向左
3*、/、%从左向右
4+、-从左向右
5<、<=、>、>=从左向右
6==、!=从左向右
7&&从左向右
8||从左向右
9?:从右向左
10=、+=、-=、*=、/=从右向左

11、java 的分支结构

what?

​ 顺序结构只能顺序执行,不能进行判断和选择,因此需要分支结构。

how?

11.1、分支结构一:if 语句

11.1.1、单分支结构—if语句
what?

​ 语法格式如下:

if(布尔表达式)
{
   //如果布尔表达式为true将执行的语句
}
how?
mport java.util.Scanner;

public class SingleBranch {
    public static void main(String[] args){
        // 小明的爸爸对小明说:“【如果】这次考试【成绩】【95分以上】,【奖励iphone12一部】”

        // 工具对象创建
        Scanner input = new Scanner(System.in);

        //常量或变量声明,并初始化
        final int TOP = 95;
        int score = 0;
        System.out.print("请输入成绩:");
        score = input.nextInt();

        //程序逻辑的组织设计
        if(score>=TOP){
            //结果呈现
            System.out.println("乖孩子,老爹奖励你一部iphone12...");
        }

        //资源释放
        input.close();
    }
}

//运行结果如下:
请输入成绩:95
乖孩子,老爹奖励你一部iphone12...
11.1.2、双分支语句—if…else…
what?
  • if 语句后面可以跟 else 语句,当if语句的布尔表达式值为 false 时,else 语句块会被执行。

语法格式如下:

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

public class DoubleBranch {
    public static void main(String[] args) {
        // 小明的爸爸说:“儿子本次考试95分以上奖励宝马一台,否则大嘴巴子一顿”
        Scanner input = new Scanner(System.in);

        final int TOP = 95;
        int score = 0;
        System.out.print("请输入成绩:");
        score = input.nextInt();

        if(score>=TOP){
            System.out.println("宝马一台...");
        }else{
            System.out.println("啪...一顿惨叫...");
        }

        input.close();
    }
}

//运行结果如下:
请输入成绩:80...一顿惨叫...
11.1.3、多分支语句—if…else if… …else…
what?

​ if 语句后面可以跟 else if…else 语句,这种语句可以检测到多种可能的情况。

​ 使用if,else if,else语句的时候,需要注意下面几点:

  • if 语句至多有 1 个 else 语句,else 语句在所有的 else if 语句之后。
  • If 语句可以有若干个 else if 语句,它们必须在 else 语句之前。
  • 一旦其中一个 else if 语句检测为 true,其他的 else if 以及 else 语句都将跳过执行。

语法格式如下:

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

public class MultiBranch {
    public static void main(String[] args) {
        /*
        小明的爸爸说:“
            儿子本次考试
            95分以上奖励宝马一台
            85~94丰田一台
            70~85QQ一台
            60~69三轮早饭车一台
            否则大嘴巴子一顿”
         */
        Scanner input = new Scanner(System.in);

        final int TOP1 = 95;
        final int TOP2 = 85;
        final int TOP3 = 70;
        final int TOP4 = 60;
        int score = 0;
        System.out.print("请输入成绩:");
        score = input.nextInt();

       /* if(score>=TOP1){
            System.out.println("宝马一台");
        }else if(score>=TOP2){
            System.out.println("丰田一台");
        }else if(score>=TOP3){
            System.out.println("QQ一台");
        }else if(score>=TOP4){
            System.out.println("三轮早饭车一台");
        }else{
            System.out.println("大嘴巴子一顿");
        }*/

       if(score<TOP4){
           System.out.println("大嘴巴子一顿");
       }else if(score<TOP3){
           System.out.println("三轮早饭车一台");
       }else if(score<TOP2){
           System.out.println("QQ一台");
       }else if(score<TOP1){
           System.out.println("丰田一台");
       }else{
           System.out.println("宝马一台");
       }

        input.close();
    }
}


//运行结果如下:
请输入成绩:65
三轮早饭车一台
11.1.4、 嵌套的 if…else 语句
what?

​ 使用嵌套的 if-else 语句是合法的。也就是说你可以在另一个 if 或者 else if 语句中使用 if 或者 else if 语句。

语法格式如下:

if(布尔表达式 1){
   如果布尔表达式 1的值为true执行代码
   if(布尔表达式 2){
      如果布尔表达式 2的值为true执行代码
   }
}
how?
//导入随机数工具类型
import java.util.Random;
public class test {
    public static void main(String[] args) {
		//中奖
        //创建随机类型的工具对象
        Random rand = new Random();
        final int FST = 10 + rand.nextInt(90);
        final int SEC = 10 + rand.nextInt(90);
        final int TRD = 10 + rand.nextInt(90);
        final int FRT = 10 + rand.nextInt(90);
        int num = 10 + rand.nextInt(90);
        String rst1 = "您未中奖!!!";

        if (num == FST) {
            rst1 = "一等奖";
        } else if (num == SEC) {
            rst1 = "二等奖";

        } else if (num == TRD) {
            rst1 = "三等奖";

        } else if (num == FRT) {
            rst1 = "四等奖";

        }
        System.out.println(rst1);


        //输入三个数排序
        //方法一:两两比较,排序
        int a1 = FST, b1 = SEC, c1 = TRD, min = 0, mid = 0, max = 0;
        System.out.println("方法一排序前" + a1 + "," + b1 + "," + c1);
        if (a1 < b1) {
            if (b1 < c1) {
                min = a1;
                mid = b1;
                max = c1;
            } else {

                if (a1 > c1) {
                    min = c1;
                    mid = a1;
                    max = b1;
                } else {
                    min = a1;
                    mid = c1;
                    max = b1;
                }

            }

        } else {
            if (b1 > c1) {
                min = c1;
                mid = b1;
                max = a1;
            } else {

                if (a1 > c1) {
                    min = b1;
                    mid = c1;
                    max = a1;
                } else {
                    min = b1;
                    mid = a1;
                    max = c1;
                }

            }
        }
        System.out.println("方法一排序后:" + min + "," + mid + "," + max);


        //方法二:找最大

        int a2 = FST, b2 = SEC, c2 = TRD,t;
        System.out.println("方法二排序前" + a2 + "," + b2 + "," + c2);

        if (a2>b2){
            t = a2;
            a2 = b2;
            b2 = t;
        }
        if (b2>c2){
            t = b2;
            b2 = c2;
            c2 = t;
        }
        //找到剩下两位书中最大的值
        if (a2>b2){
            t = a2;
            a2 = b2;
            b2 = t;
        }
        System.out.println("方法二排序前" + a2 + "," + b2 + "," + c2);
    }

}

//运行结果如下:
您未中奖!!!
方法一排序前186757
方法一排序后:18,57,67
方法二排序前186757
方法二排序前185767

11.2、分支结构二:switch 语句

what?

​ switch 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。

语法格式如下:

switch(算术表达式){
    	case 常量1:		//算数表达式 == 常量1
        	//代码块1
        	break;		 //结束switch...case结构
    	case 常量2:		//算数表达式 == 常量2
        	//代码块2
        	break;
    	default:		 // else
        	//代码块3
        	break;    
}

//注意

/*
	switch(what?)
	1、JDK>=1.8   String
	2、数值
		2.1、char
		2.2、非long的整数
		2.3、枚举
*/


/*
	以算数表达式的结果值,从上到下,依次和常量n做等值比较
	常量值不能重复
	算数表达式 == 常量1
*/

/*
	break的功能:结束分支
	如果break缺失会导致贯穿现象
		贯穿:冲第一个匹配项开始直接,到第一个break结束
	合理的运用贯穿现象扩有高效的解决特定问题
*/

/*
	整个switch(){}中只存在一个作用域,所以不阔以存在同名变量

*/
how?
//导入随机数工具类型

import java.util.Random;
import java.util.Scanner;

public class test {
    public static void main(String[] args) {
        // 示例
        int type  = 2;
        switch (type){
            case 1:
                System.out.println("挂失...");
                break;
            case 2:
                System.out.println("充值...");
                break;

            default:

                System.out.println("无服务...");
                break;
        }
        

        //根据年月,计算该月天数,使用switch...case,并利用贯穿   优化上面判断某年某月天数的code
        int year = 2000, month = 2, day = 31;
        switch (month) {
            case 4:
            case 6:
            case 9:
            case 11:
                day = 20;
                break;
            case 2:
                day = year % 4 == 0 && year % 100 == 0 || year % 400 == 0 ? 29 : 28;
                break;
        }
        System.out.println(year + "年 " + month + "月" + "有" + day + "天");   
    }
}

//运行结果如下:
充值...
20002月有29

点睛之笔

what?

​ 该片段存在的一以为:

​ 本结java学习中途的代码的查缺补漏,亦或是总体集合!请大家耐心查阅、学习啦!

how?

package char03;

//导入随机数工具类型

import java.util.Random;
import java.util.Scanner;

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



        //值交换
        int left = 5, right = 3, swap;
        System.out.println("left =" + left + ", right =" + right);
        swap = left;
        left = right;
        System.out.println("left =" + left + " ,right =" + right);
        right = swap;
        System.out.println("left =" + left + ", right =" + right);



        //嫁女儿的故事
        //身高每欠一公分,彩礼+3万,体重每欠或超一斤,彩礼+2万,每结一次婚,彩礼+40
        final double HEIGHT = 1.8, WEIGHT_BOTTOM = 160, WEIGHT_TOP = 180, BRIDE_PRICE = 						88;
        double man_height = 1.68, man_weight = 140, breide_price = 0, married_times = 1;
		//   char married = '否';
        String married = "否";

        double height_price = man_height >= HEIGHT ? 0 : (HEIGHT - man_height) * 10 * 3;
        double weight_price = man_weight >= WEIGHT_BOTTOM && man_weight <= WEIGHT_TOP ? 0 			:Math.abs((man_weight < WEIGHT_BOTTOM ? WEIGHT_BOTTOM : WEIGHT_TOP) - 						man_weight) * 2;
        double marriege_price = married.equals('否') ? 0 : married_times * 40;

        breide_price = BRIDE_PRICE + height_price + weight_price + marriege_price;
        System.out.println("您的新娘价格为:¥" + breide_price + "万");



        // 字符串比较大小
        String a = "a", b = "b";
        int rst = a.compareTo(b);
        System.out.println(rst);



        //大小写转换
        System.out.println("FWFAawrawrASFDAF".toLowerCase());
        System.out.println("FWFAawrawrASFDAF".toUpperCase());





        //登录功能
        Scanner input = new Scanner(System.in);

        final String ACCOUNT = "洋群满满", PASSWORD = "123";
        int balance = 100;
        System.out.print("请输入账号:");
        String acc = input.next();
        System.out.print("请输入密码:");
        String pass = input.next();


        if (acc.equals(ACCOUNT) && pass.equals(PASSWORD)) {
            System.out.println("1、查余额   2、存款    3、取款");
            System.out.println("请选择:");
            byte choice = input.nextByte();
            switch (choice) {
                case 1:
                    System.out.println("您当前的余额为:¥" + balance);
                    break;
                case 2:
                    System.out.println("请输入你需要存款的金额:¥");
                    double in_money = input.nextDouble();
                    if (in_money % 100 != 0) {
                        System.err.println("存款金额仅支持百元面额!!!");
                    } else {
                        balance += in_money;
                        System.out.println("存款¥" + in_money + "成功,当前余额为:¥" + 									balance);
                    }
                    break;
                case 3:
                    System.out.print("请输入取款金额:¥");
                    double out_money = input.nextDouble();
                    input.close();
                    if (out_money % 100 != 0) {
                        System.err.print("取款金额仅支持百元面额!!!");
                    } else if (out_money > balance) {
                        System.out.println("您的余额不足,无法取出您所需要的金额!!!");
                    } else {
                        System.out.println("取款¥" + out_money + "成功,当前余额为:¥" + 									balance);
                    }

                    break;
                default:
                    System.out.println("无此服务!!!");
                    break;
            }
        } else {
            System.out.println("登录失败");
        }


        //取款功能

    }

}


//运行结果如下:

left =5, right =3
left =3 ,right =3
left =3, right =5

您的新娘价格为:¥171.60000000000002-1

fwfaawrawrasfdaf
FWFAAWRAWRASFDAF

请输入账号:洋群满满
请输入密码:123
1、查余额   2、存款    3、取款
请选择:
3
请输入取款金额:¥100
取款¥100.0成功,当前余额为:100

OK!本次的java学习历程到此结束,后面会继续分享的,尽请期待…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AI工程师是指从事人工智能领域相关工作的专业人士。他们负责设计、开发和实施各种人工智能技术和算法,以解决现实世界中的问题。AI工程师的学习之旅可以包括以下几个步骤: 1. 学习基础知识:AI工程师需要具备扎实的数学、统计学和计算机科学基础知识。这包括线性代数、概率论、数据结构和算法等。可以通过自学、参加在线课程或者报读相关专业学位来获得这些知识。 2. 学习机器学习和深度学习:机器学习和深度学习是AI工程师最核心的技能。学习这些技术需要了解各种机器学习算法、神经网络结构和优化方法等。可以通过学习经典的机器学习教材、参加在线课程或者参与实际项目来提升这方面的能力。 3. 掌握编程技能:AI工程师需要熟练掌握编程语言,如Python、Java或C++等。这些编程语言在人工智能领域应用广泛,可以用于数据处理、模型训练和算法实现等。建议通过编程练习、参与开源项目或者参加编程培训来提高编程能力。 4. 实践项目经验:除了理论知识,实践项目经验对于AI工程师的成长也非常重要。可以通过参与竞赛、实习或者自己构建项目来积累实践经验。这样可以更好地理解和应用所学知识,并展示自己的能力。 5. 持续学习和跟进最新技术:人工智能领域发展迅速,新的技术和算法不断涌现。作为AI工程师,需要保持持续学习的态度,跟进最新的研究成果和技术进展。可以通过阅读论文、参加学术会议或者参与在线社区来不断更新自己的知识。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值