JavaSE详细教程.3

本文详细介绍了Java中的变量类型,包括类变量、实例变量和局部变量,以及运算符如赋值、算术、比较、逻辑、三元运算符等。此外,还阐述了流程控制,包括条件语句(if、switch)和循环语句(while、do...while、for)。同时,文中提供了break和continue语句的用法示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一.变量类型

1.类变量(静态变量)

2.实例变量

3.局部变量

二.运算符

1.赋值运算符

2.算术运算符

3.自增、自减运算符

4.比较运算符

5.逻辑运算符 

6.三元运算符

7.运算符优先级

三.流程控制

1.条件语句

 if条件语句

switch多分支语句

 2.循环语句

while循环语句 

 do...while循环语句

for循环语句 

3.循环控制

break语句

continue语句


因为一些原因,断更了很久,之后会不断更新学习路线,谢谢大家的支持。

一.变量类型

1.类变量(静态变量)

• 使用static声明的变量,可以直接用 类名.变量名 去访问

• 一个类里不管创建多少个对象,都只有类变量的一份拷贝,其中数值默认为0,布尔类型默认为false,引用类型默认为null

• 一般这样声明:public static final

public static String NAME;
public static int AGE;
public static boolean FLAG;

2.实例变量

• 使用 对象名.变量名 进行访问

• 对象被实例化后,实例变量的值就会确定,可以是赋值,也可以是默认值

• 访问修饰符可以修饰实例变量,通常用private修饰,且通过方法来进行查看或修改

public class Student{
    
    //类变量
    public static final String PREFIX ="...";

    //实例变量
    private int age;
    private String name;

    //通过方法进行修改或访问
    public int getAge(){
        return age;
    }

    public void setAge(int age){
        this.age = age;
    }

    public String getName(){
        return name;
    }

    public void setName(String name){
        this.name = name;
    }
}

3.局部变量

•方法中的变量

•声明在方法、语句块、形式参数等

•访问修饰符不能修饰局部变量

•没有初始值,必须在初始化后才可以被使用

二.运算符

1.赋值运算符

赋值运算符以符号“=”表示,为一个二元运算符,将右方的值赋给左方的操作数,例:

int a = 100;

 赋值运算符在处理时会先取得右方表达式处理后的结果,因此一个表达式中如果含有两个或以上的“=”运算符,会从最右边的“=”开始处理

2.算术运算符

算术运算符主要有+(加)、-(减)、*(乘)、/(除)、%(取余),都是二元运算符

需要注意在进行处罚运算时,0不能作为除数去运算

算术运算符模拟计算器:

import java.util.Scanner;
public class ArithmeticOperator{
    public static void main(String [] args){

    Scanner sc = new Scanner(System.in); //创建扫描器,获取控制台输入的值
    System.out.println("请输入两个数字,并用空格隔开(num1 num2):"); //输出提示
    
    //记录输入的两个数字
    double num1 = sc.nextDouble();
    double num2 = sc.nextDouble();

    System.out.println("num1和num2的和为:"+(num1+num2));
    System.out.println("num1和num2的差为:"+(num1-num2));
    System.out.println("num1和num2的积为:"+(num1*num2));
    System.out.println("num1和num2的商为:"+(num1/num2));
    System.out.println("num1和num2的余数为:"+(num1%num2));

    sc.close(); /关闭扫描器
    }
}

3.自增、自减运算符

自增++

自减--

自增、 自减运算符为单目运算符,可以在操作元之前,也可以在操作元之后,其中操作元必须为整型或浮点型的变量,作用是使变量的值增加1或减少1

放在操作元前面,会先将变量的值加1或减1,然后再使该变量参加表达式的运算;而放在操作元的后面,会使变量先参与表达式的运算,然后再将该变量加1或减1

++a(--a)  //表示在使用变量a之前,先使a的值加1或减1
a++(a--)  //表示在使用变量a之后,使a的值加1或减1


int a = 4
b=++a;  //先将a的值加1,然后再赋值给b,此时a的值为5,b的值为5
b=a++;  //先将a的值赋值给b,再将a的值加1,此时a的值为5,b的值为4

4.比较运算符

比较运算符为二元运算符,运算结果是boolean类型,对应关系成立时,结果为true,否则为false

运算符作用操作数据
>比较左方是否大于右方整型、浮点型、字符型
<比较左方是否小于右方整型、浮点型、字符型
==比较左方是否等于右方基本数据类型、引用型
>=比较左方是否大于等于右方整型、浮点型、字符型
<=比较左方是否小于等于右方整型、浮点型、字符型
!=比较左方是否不等于右方基本数据类型、引用型


5.逻辑运算符 

返回类型为布尔类型的表达式,可以组合在一起构成更复杂的表达式

运算符含义
&&、&逻辑与
||逻辑或
逻辑非
public class Calculation{
    public static void main(String [] args){

    int boys = 15;  //男生人数
    int girls =17;  //女生人数
    int totle = boys + girls;  //总人数

    boolean result1 = ((boys > girls) && (totle > 30));  //男生人数大于女生人数且总人数大于30人
    boolean result2 = ((boys > girls) || (totle > 30));  //男生人数大于女生人数或总人数大于30人

    输出结果
    System.out.println("男生人数大于女生人数且总人数大于30人:"+result1);
    System.out.println("男生人数大于女生人数或总人数大于30人:"+result2);
    }
}


6.三元运算符

三元运算符的使用格式:

条件式 ? 值1:值2

运算规则:若条件式的值为true,则整个表达式取值1,否则取2,例:

boolean b = 20 < 45 ? true : false;

 上述表达式“20<45”的运算结果如果返回真,那么boolean型变量b取值为true,相反则为false

7.运算符优先级

运算符优先级从高到低为:

增量、减量运算符

算术运算符

比较运算符

逻辑运算符

赋值运算符

三.流程控制

1.条件语句

 if条件语句

 关键字if之后是作为条件的“布尔表达式”,如果该表达式返回的结果是true,则执行后面的语句;如果是false,则不执行if条件之后的语句。if条件语句可分为以下三种:

第一种:

if(布尔表达式){

       语句序列

}

 布尔表达式:必要参数,最后返回的结果必须是布尔值

语句序列:可选参数,可以是一条或多条语句

例:判断手机号码是否存在

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

        int phoneNumber = 123456789; //创建变量,保存电话号码
        
        if(phoneNumber != 34673466){  //如果此电话号码不是34673466
            System.out.println("对不起,你拨打的号码不存在");  //提示号码不存在
        }
    }
}

第二种:

if(条件表达式){

       语句序列1

}else{

       语句序列2

 针对某种条件有选择的做出处理,通常表示为“如果满足某种条件,就进行某种处理,否则就进行另一种处理”

例:密码校验

public class Login{
    public static void main(String [] args){
        
        int password = 987654321;  //密码值
        
        if(123456789 == password){  //如果密码是123456789
            System.out.println("密码正确");
        }else{
            System.out.println("密码错误");
        }
    }
}

第三种:

if(条件表达式1){

       语句序列1

}else if(条件表达式2){

       语句序列2

}

...

else if(条件表达式n){

       语句序列n

}

针对某一事件的多种情况进行处理,表现为“如果满足某种条件,就进行处理,否则满足另一种条件则执行另一种处理” 

例:饭店座位分配

public class Restaurant{
    public static void main(String [] args){
        System.out.println("欢迎光临");

        int count = 9;
        System.out.println("回答"+count+"人");

        if(count <= 4){
            System.out.println("请到四人桌用餐");
        }else if(count > 4 && count <= 8){
            System.out.println("请到八人桌用餐");
        }else if(count > 8 && count <= 16){
            System.out.println("请到楼上包厢用餐");
        }else{
            System.out.println("抱歉,暂时没有这么大的包厢");
        }
    }
}

switch多分支语句

在编程中,一个常见问题就是检测一个变量是否符合某个条件,这可以用if语句来进行判断,而当数据量较多时,用if语句进行判断就会导致程序变得和笨重,因此我们可以用switch语句将动作组织起来,以一个简单明了的方式来实现“多对一”的选择,语法如下:

switch(表达式){

case 常量值1:

        语句块1;

        break;

case 常量值2:

        语句块2;

        break;

...

case 常量值n:

        语句块n;

        break;

dedault:

        语句块n+1;

        break;

 switch语句中表达式的值必须是整型、字符型、字符串型或枚举型

同一个switch语句,case的常量值必须互不相同

例:判断分数属于哪类成绩

import java.util.Scanner;
public class Grade{
    
    public static void main(String [] args){

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入成绩");

        int grade = sc.nextln();
        switch(grade){
        case 10:
        case 9:
            System.out.println("成绩为优");
            break;
        case 8:
        case 7:
        case 6:
            System.out.println("成绩为中");
            break;
        case 5:
        case 4:
        case 3:
        case 2:
        case 1:
            System.out.println("成绩为不合格");
            break;
        default:
            System.out.println("成绩无效");
        }
        sc.close();
    }
}

 2.循环语句

while循环语句 

 while语句也称为条件判断语句,它的循环方式是利用一个条件来控制是否要继续反复执行这个语句,语法如下:

while(条件表达式){

        语句序列

}

条件表达式的返回值为true时,则执行语句序列,执行完后重新判断条件表达式的返回值,直到结果为false时,退出循环

例:计算1-1000的相加结果

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

        int x = 1;
        int sum = 0;
        while(x <= 1000){  //循环1000次
            sum = sum + x;
            x++;
        }
        System.out.println("sum="+sum);
    }
}

 do...while循环语句

do...while循环语句与while循环语句类似,区别在于while语句是先判断条件是否成立,在选择是否执行循环体,而do...whlie循环语句则是先执行一次循环后,再判断条件是否成立,语法如下:

do{

        语句序列

} while(条件表达式);

例:用户登录验证

import java.util.Scanner;
public class LoginService{
    public static void main(String [] args){

        Scanner sc = new Scanner(System.in);  //创建扫描器,获取控制台输入的值
        int password;  //保存用户输入的密码

        do{
            System.out.println("请输入6位数字密码");  //输出提示
            password = sc.nextlnt();  //将用户在控制台输入的密码记录下来
        }whlie(931567 != password);  //如果用户输入的密码不是"931567"则继续执行循环
        
        System.out.println("登录成功");
        sc.close();
    }
}

for循环语句 

 for循环可以用来重复执行某条语句,知道某个条件得到满足。for循环有两种语句:

第一种:for语句

for(表达式1;表达式2;表达式3){

        语句序列

}

表达式1:初始化表达式,负责对变量完成初始化

表达式2:循环条件表达式,指定循环条件

表达式3:每次循环结束后执行的语句,用来改变循环的条件

执行时,首先执行表达式1,下一步判断表达式2的值,若值为true,则进入循环体,在执行完循环体后紧接着计算表达式3,这样一轮循环就结束了,第二轮循环从计算表达式2开始,若返回值为true,则继续执行循环,否则跳出整个for语句

例:计算2-100中所有偶数的和

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

        int sum = 0;
        for(int i = 2;i <= 100;i += 2){
            sum = sum + i;
        }
        System.out.println("2到100之间的所有偶数之和为:"+sum);
    }
}

第二种:foreach语句

for(元素类型 x : 遍历对象 obj){

        引用了x的java语句;

}

 foreach语句是对for语句的简化版本,并不能完全取代for语句,foreach语句中的元素变量x,不必对其进行初始化

例:定义一维数组,并用foreach语句遍历数组

public class Repetion{
    public static void main(String [] args){
        
        int arr[] = {5,13,96};  //定义一维数组
        System.out.println("一维数组中的元素分别为:");

        for(int x : arr){  //x的类型与arr元素的类型相同,for循环依次取出arr中的值并赋给x
            System.out.println(x);
        }
    }
}

3.循环控制

break语句

 break语句用于跳出循环体,从而中断当前循环

三种循环语句中使用break的形式如下:

while(...){

        ...

        break;

        ...

}

do

{

        ...

        break;

        ...

}while(...);

for

{

        ...

        break;

        ...

}

例:循环输出1-20的偶数值,在遇到第一个偶数时,结束循环

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

        for(int i = 1;i <= 20;i++){
            if(i % 2 == 0){
                System.out.println(i);
                break;
            }
        }
        System.out.println("end");
    }
}

continue语句

continue语句是对break语句的补充,continue不是立即跳出循环体,而是跳过本次循环,回到循环的条件测试部分,重新执行循环 

三种循环语句使用continue的形式如下:

while(...){

        ...

        continue;

        ...

}

do

{

        ...

        continue;

        ...

}while(...);

for

{

        ...

        continue;

        ...

}

例:for循环从1到20,循环次数为偶数时,跳过本次循环

 

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

        for(int i = 1;i <= 20;i++){
            if(i % 2 == 0){
                continue;
            }
            System.out.println(i);
        }
    }
}

针对本章内容给大家留一道趣味题,供大家讨论解决一下,参考代码会在下期公布

5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买一只雏鸡,现在用100文钱买100只鸡,那么公鸡、母鸡、雏鸡各有多少只?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值