从零开始学Java Day02 Java基础语法

01方法

1.方法详解

方法是一种用于执行特定任务或操作的代码块,代表一个功能,它可以接受数据进行处理,并返回一个处理后的结果。

方法的完整定义各位为:

修饰符 返回类型 方法名称(形参列表){

        方法体代码(需要执行的功能代码)

        return 返回值;

理解形参,最好把它和实参 (Actual Arguments) 区分开来:

  • 形参 (Formal Parameters):在方法定义时声明的,用于接收数据的占位符。它们是局部变量,只在方法内部有效。

  • 实参 (Actual Arguments):在方法调用时传递给方法的具体值变量

//写一个比较两数大小的方法

//public static为修饰符 int为返回值类型 max为方法名 int a,int b为形参列表
public static int max(int a, int b) {
        int max;       //方法体代码
        if(a > b){     //方法体代码
            max = a;   //方法体代码
        }//方法体代码
        else {         //方法体代码
            max = b;   //方法体代码
        }              //方法体代码
        return max;    //返回值
    }

方法的返回值也可以为viod 表明无需返回值。

2.方法的其他注意事项

2.1方法可以重载

一个类中,出现多个方法名称相同,而形参列表不同,这就叫做方法的重载。这是一种很优雅的语言设计,可以满足程序员在面对一种方法操作类型,不同数据类型的操作需求,而不会招致代码逻辑的混乱。

import java.util.Scanner;

public class methodOverloading {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        double a = sc.nextDouble();
        double b = sc.nextDouble();
        sum((int)a,(int)b);
        sum(a,b);

    }

    public static void sum(int a, int b) {
        int sum = a + b;
        System.out.println(sum);
    }

    public static void sum(double a, double b) {
        double sum = a + b;
        System.out.println(sum);
    }
}

例如以上代码就是一个很好的方法重载的例子,可以通过只调用一个方法名,就完成对数据的两个结果加和。

2.2无返回值的方法中可以直接通过单独的return;立即结束当前方法的执行。

import java.util.Scanner;

public class returnEndMethod {
    public static void main(String[] args) {
        int a = 2;
        int b = 10;
        max(a , b);
        System.out.println("If there is no max, then return break the method.");
    }

    public static void max(int a, int b) {
        if (a > b){
            int max = a;
            System.out.println("Max is " + a);
        }
        return;
    }
}

02数据类型转换

1.自动类型转换

范围小的数据类型单位在赋值时可以自动赋值给大的数据类型单位

其原理如下,例如将byte类型数据赋值给int类型数据,如下所示:

将有效位数直接放在最后,之所以可以自动转换,是因为可以保证完全保留空间较小的数据类型的有效位数。

2.强制类型转换

数据类型范围大的变量,不可用直接赋值给类型范围小的变量,会报错,需要强制类型转换过去,其语法如下:

数据类型 变量2 = (数据类型)变量1、数据

int a = 20;
byte b = (byte)a; //强制类型转换
System.out.printLn(b); //20

3.表达式的自动类型提升

在表达式中,小范围类型的变量,会自动转换成表达式中较大范围的类型,再参与运算。

例如一个byte数据,与int数据,double数据类型同时进行运算,则其三者都被转换为double数据类型进行运行,结果也为double数据类型。

03输入输出

Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
String s = sc.next();

04运算符

1.算数运算符、+符号做连接符

符号作用说明
+

参考一年级课本 部分情况可坐连接符 

(如 5 + 3 结果为 8)

-

参考一年级课本 

(如 5 - 3 结果为 2)

*

参考一年级课本 

(如 5 * 3 结果为 15)

/

在Java中 两个整数相除的结果还是整数 

(如 10 / 3 结果为 3)

%取余

获取两个数做除法的余数

(如 5 % 3 结果为 2)

特殊用法:

  • + 符号可作为字符串连接符(如 "Hello" + "World" 结果为 "HelloWorld"
  • 当数字与字符串相加时,数字会被隐式转换为字符串(如 5 + "3" 结果为 "53"

2.自增自减运算符

自增自减运算符包括:

  • ++ 自增运算符(如 i++ 或 ++i
  • -- 自减运算符(如 i-- 或 --i

使用区别:

  • 前缀形式(如 ++i):先自增/自减,后返回值
  • 后缀形式(如 i++):先返回值,后自增/自减
int a = 5;
int b = a++;  // b = 5, a = 6
int c = ++a;  // a = 7, c = 7
 
int a = 5;
int b = a++;  // b = 5, a = 6
int c = ++a;  // a = 7, c = 7
 

3.赋值运算符

基本赋值运算符:

  • = 简单赋值(如 a = 5

复合赋值运算符:

  • += (如 a += 3 等价于 a = a + 3
  • -= (如 a -= 3 等价于 a = a - 3
  • *= (如 a *= 3 等价于 a = a * 3
  • /= (如 a /= 3 等价于 a = a / 3
  • %= (如 a %= 3 等价于 a = a % 3

4.关系运算符、三元运算符

关系运算符:

  • > 大于(如 5 > 3 返回 true
  • < 小于(如 5 < 3 返回 false
  • >= 大于等于
  • <= 小于等于
  • == 等于(比较值)
  • != 不等于

三元运算符:

  • 语法:条件 ? 表达式1 : 表达式2
  • 示例:int max = (a > b) ? a : b;
  • 判断逻辑为是否a > b,如果是则将a赋值给max,如果不是则将b赋值给max。

5.逻辑运算符

基本逻辑运算符:

  • && 逻辑与(两个条件都为真)
  • || 逻辑或(至少一个条件为真)
  • ! 逻辑非(取反)

短路特性:

  • 对于 &&,如果第一个条件为假,不再计算第二个条件
  • 对于 ||,如果第一个条件为真,不再计算第二个条件

位运算符(扩展):

  • & 按位与
  • | 按位或
  • ^ 按位异或
  • ~ 按位取反
  • << 左移位
  • >> 右移位
  • >>> 无符号右移位

05综合案例

import java.util.Scanner;

public class healthCalculator {
    public static void main(String[] args) {
        System.out.println("Please enter your gender(male/female):");
        Scanner sc = new Scanner(System.in);
        String gender = sc.next();
        System.out.println("Please enter your age:");
        int age = sc.nextInt();
        System.out.println("Please enter your body weight(kg):");
        double weight = sc.nextDouble();
        System.out.println("Please enter your height(m):");
        double height = sc.nextDouble();
        if("male".equals(gender)){
            male(weight ,height, age);
        }
        else {
            female(weight ,height, age);
        }

    }

    public static void male(double weight , double height, int age) {
        double bmi = weight / (height * height);
        double bmr = 88.362 + (13.397 * weight) + (4.799 * height) - (5.677 * age);
        if(bmi < 18.5){
            System.out.println("BMI = " + bmi + "body weight low");
        } else if (18.5 <= bmi && bmi <= 24.9) {
            System.out.println("BMI = " + bmi + "body weight normal");
        } else if (25 <= bmi && bmi <= 29.9) {
            System.out.println("BMI = " + bmi + "overweight");
        } else if (bmi >= 30) {
            System.out.println("BMI = " + bmi + "fat pig");
        }

        //space
        if(bmr >=1500 && bmr <=2500){
            System.out.println("BMR = " + bmr + "bmr normal");
        }else System.out.println("BMR = " + bmr + "bmr unnormal");
    }

    public static void female(double weight , double height, int age) {
        double bmi = weight / (height * height);
        double bmr = 447.593 + (9.247 * weight) + (3.098 * height) - (4.330 * age);
        if(bmi < 18.5){
            System.out.println("BMI = " + bmi + "body weight low");
        } else if (18.5 <= bmi && bmi <= 24.9) {
            System.out.println("BMI = " + bmi + "body weight normal");
        } else if (25 <= bmi && bmi <= 29.9) {
            System.out.println("BMI = " + bmi + "overweight");
        } else if (bmi >= 30) {
            System.out.println("BMI = " + bmi + "fat pig");
        }

        //space
        if(bmr >=1200 && bmr <=2000){
            System.out.println("BMR = " + bmr + "bmr normal");
        }else System.out.println("BMR = " + bmr + "bmr unnormal");
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值