MineJavaDiary2

文章介绍了Java编程语言中的基本概念,包括标识符的命名规则,数据类型的分类(基本数据类型与引用数据类型),变量的声明与使用,以及运算符的种类如算术运算符、赋值运算符等。此外,还详细讲解了程序的流程控制结构,如顺序结构、分支结构(if、switch)和循环结构(while、do-while、for)。文章通过实例展示了如何在实际编程中应用这些基础知识。

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

一、变量与数据类型

1、标识符

  1. Java对包、类、方法、参数和变量等要素命名时使用的字符序列称为标识符。
  2. 命名规则如下:
    (1)由字母、数字、下划线(_)和美元符号($)组成。
    (2)不能以数字开头。
    (3)区分大小。
    (4)长度无限制。
    (5)不能是Java中的保留关键字。
    (6)类名规范:首字母大写,后面每个单词首字母大写(大驼峰式)。
    (7)方法名规范: 首字母小写,后面每个单词首字母大写(小驼峰式)。
    (8)变量名规范: 首字母小写,后面每个单词首字母大写。
    (9)包名规范:全都小写
  3. 示例:
    合法标识符:HelloWord、userName2、user_name、_userName、$abc_123
    非法标识符:2UserName、user#Name、Hello World、class

2、数据类型

java数据类型分为两大类,基本数据类型和引用数据类型

  1. 基本数据类型:在这里插入图片描述

  2. 引用数据类型:类、借口、数组

  3. 基本数据类型转换:
    java程序在进行赋值或运算时,精度小的类型会自动转换为精度大的数据类型
    在这里插入图片描述
    byte,short,char之间不会自动转换类型。但是三者可以进行计算,计算时首先会转换为int型,表达式的结果会自动转换为操作数中最大的类型(boolean不参与类型的自动转换)
    当把任何基本数据类型的值和字符串(String)进行连接运算时(+),基本数据类型的值将自动转化为字符串(String)类型。

  4. 字符串类型:String
    String不是基本数据类型,属于引用数据类型
    使用方式与基本数据类型一致。例如:String str = “abcd”;
    一个字符串可以串接另一个字符串,也可以直接串接其他类型的数据。

  5. 强制类型转换
    自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符:(),但可能造成精度降低或溢出,格外要注意。
    通常,字符串不能直接转换为基本类型,但通过基本类型对应的包装类则可以实现把字符串转换成基本类型。

double d1=10.32;
int a1=(int)d1;
System.out.println(d1);
System.out.println(a1);

    结果:
    10.32
	10

boolean类型不可以转换为其它的数据类型。

3、变量

  1. 用来存储各种类型的数据,由于该存储单元中的数据可以发生改变,因此得名为"变量"。
  2. 声明变量:

先声明变量后赋值:
数据类型 变量名称;
变量名称=值;
声明变量的同时赋初值
数据类型 变量名称=值;

  1. 变量的使用
package lina;
/*
* 变量的声明与使用
*/
public class Demo02_var {
public static void main(String[] args) {
//1、声明变量
//1.1 先声明后赋值:数据类型 变量名称;
int age;//声明
age=18;//赋值
//1.2 声明变量的同时赋初值:数据类型 变量名称=初值;
double money=1000.0;
//2、变量的使用:先声明并赋值之后才能使用
System.out.println("年龄是:"+age);
System.out.println("私房钱有:"+money);
//System.out.println(name);//错误 没有声明
//其他类型的变量
float num=12.5F;//小数点的数字默认是double类型,如果赋值给float,需要在值后面
加上后缀f 大小写都OK
long num2=100L;//整数数字默认是int类型,long类型的 变量的值后面可以添加L后
缀,也可以省略(省略的时候暗含类型转换,但是不能超过int的范围,否则不能省略)
char gender='男';//字符类型的值必须使用单引号引起来
String str="我爱你中国";//字符串类型的值必须使用双引号引起来
System.out.println(num);
System.out.println(num2);
System.out.println(gender);
System.out.println(str);
}
}
  1. 控制台输入
package lina;
import java.util.Scanner;
/**
* 控制台输入
*
*/
public class Demo03_input {
public static void main(String[] args) {
//理解为扫描仪
Scanner input=new Scanner(System.in);//需要导入java.util.Scanner;
System.out.print("请输入您的年龄:");
int age=18;//声明变量并附了初值
//调用扫描仪的功能干活
age=input.nextInt();//扫描整数
System.out.print("请输入您的私房钱:");
double money=input.nextDouble();//扫描小数
System.out.print("请输入您的姓名:");
String name=input.next();//扫描字符串,空格不能扫描
System.out.print("请输入性别:M/F");
char gender=input.next().charAt(0);//扫描字符
System.out.println("你是单身嘛?");
boolean isSingle=input.nextBoolean();//扫描boolean类型
System.out.println("输入的年龄是:"+age);
System.out.println(money);
System.out.println(name);
System.out.println(gender);
System.out.println(isSingle);
input.close();//可以省略,避免有黄色的警告
}
}
  1. 变量分类
    变量分为:基本数据类型变量和引用数据类型变量
    按声明位置划分:分为局部变量和成员变量。局部变量定义在方法或语句块内部定义的变量,成员变量定义在方法外部、类的内部定义的变量

4、运算符

1.算数运算符
在这里插入图片描述
++: 如果是变量前缀:先对此变量加1,再执行其他的操作。
如果是变量后缀:先执行当前语句的其他操作,再对此变量加1
–: 如果是变量前缀:先对此变量减1,再执行其他的操作。
如果是变量后缀:先执行当前语句的其他操作,再对此变量减1

  1. 赋值运算符
    赋值运算符作用是将一个值赋给一个变量,运算顺序从右到左
    在这里插入图片描述

  2. 关系运算符
    在这里插入图片描述

  3. 逻辑运算符
    逻辑运算符用于对boolean型结果的表达式进行运算
    在这里插入图片描述

  4. 三目运算符
    X ? Y : Z
    X为boolean类型表达式,先计算x的值,若为true,整个三目运算的结果为表达式y的值,否则整个运算结果为表达式z的值。

二、程序的流程控制

1、顺序结构

  1. 顺序结构是一种基本的控制结构,它按照语句出现的顺序执行操作(从上到下,从左到右)。
正确格式:
public class Test{
	int num1=12;
	int num2=num1+10;
}

错误格式:
public class Test{
	int num2=num1+10;
	int num1=10;
}

2、分支结构

分支结构又被称为选择结构,根据条件成立与否来执行操作。
1、 if基本选择结构

语法:
if(条件) {
条件成立执行的内容
}

如果括号中的条件成立,就进入{ }中执行代码,否则不进入{ }

  1. if-else选择结构

语法:
if(条件){
条件成立执行的内容
}else{
条件不成立执行的内容
}

如果括号中的条件成立,就进入if的{ }中执行代码,否则进入else的{ }中执行代码

  1. else if多重选择结构

if(条件1){
代码1
}else if(条件2){
代码2
}else if(条件3){
代码3
}…
else if(条件n){
代码4
}else{
//当以上的所有条件都不成立的时候执行的代码
}

如果条件1成立就执行代码1,条件1不成立就执行条件2的判断,如果条件2成立就执行代码2,条件2不成立就执行条件3的判断…

示例:
int num=99;
        if (num>90){
            System.out.println("成绩优秀~");
        }else if (num>80){
            System.out.println("成绩良好~");
        }else if(num>70){
            System.out.println("成绩中等~");
        }else if(num>60){
            System.out.println("成绩及格~");
        }else {
            System.out.println("不及格~");
        }
  1. switch选择结构

语法:
switch(表达式){
case 值1:
代码1;
break;
case 值2:
代码2;
break;

case 值n:
代码n
break;
default: //相当于else
//以上的匹配都失败的时候执行的内容
break;
}

(1)表达式的返回值必须是下述几种类型之一:int, byte, char, short,String;
(2)case子句中的取值必须是常量,且所有case子句中的取值应是不同的;
(3)default子句是可选的;
(4)break语句用来在执行完一个case分支后使程序跳出switch语句块;如果case后面没有写break则直接往下面执行!
(5)Case后面的执行体可写{ }也可以不写{ }

示例:根据排名不同,奖金也不同
int rank=4;
        switch (rank){
            case 1:
                System.out.println("奖金10000元");
                break;
            case 2:
                System.out.println("奖金7500元");
                break;
            case 3:
                System.out.println("奖金5000元");
                break;
            case 4:
                System.out.println("奖金2500元");
                break;
            default:
                System.out.println("你的名次没有奖金~");
                break;
        }
巧用break的省略:
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// 根据用户输入的月份,输出当月的天数,不考虑平年闰年
System.out.println("请输入月份:");
int month = input.nextInt();
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println(month + "月共有31天!");
break;
case 4:
case 6:
case 9:
case 11:
System.out.println(month + "月共有30天!");
break;
case 2:
System.out.println(month + "月共有28天!");
break;
default:
System.out.println("您输入的月份有误!");
break;
	}
}
  1. 字符串比较相等

== 比较内存地址
equlas 比较内容

如果你想比较两个字符串的内容是否相等,应该使用"equals()“方法。而如果你想比较两个字符串对象的引用是否指向同一个内存地址,则应该使用”=="操作符。

String str1="abc";
String str2=input.next();
System.out.println(str1==str2);
System.out.println(str1.equlas(str2));

3、 循环结构

  1. while循环

while(循环条件){
//循环操作
}

流程图
在这里插入图片描述

  1. 解决循环题目的步骤
    (1)分析循环条件和循环操作
    (2)套用到循环语法中
    (3)检查循环能否退出(循环条件是否会发生变化)
案例1:一共吃10个苹果
public static void main(String[] args) {
        int apple=10;
        boolean loop=true;
        while (loop){
            apple--;
            System.out.println("第"+(apple+1)+"个苹果被吃掉了");
            if (apple<=0){
                loop=false;
            }
        }
        System.out.println("所有苹果全被吃掉了~");
    }


案例2:打印1-100之间的所有数字
public static void main(String[] args) {
		//1、分析循环条件和操作
		//循环操作:打印数字
		//循环条件:不够100
		int i=1;
		while(i<=100) {
			System.out.println(i);
			i++;
		}
	} 

While循环特征:
(1)先判断后执行
(2)如果初始条件不满足,循环一次都不执行

  1. do-while循环

相似于while循环

do{
//循环操作
}while(循环条件);

流程图:
在这里插入图片描述
do-while循环的特征:
1、先执行后判断
2、如果初始条件不满足,循环至少执行一次

  1. for循环

for(表达式1:定义循环变量;表达式2:循环条件;表达式3:循环变量的变化){
//循环操作
}

执行顺序:
(1)先执行表达式1:定义循环变量,该表达式只执行一次
(2)判断循环条件是否成立:
(3)循环条件成立:执行循环操作, 不成立:退出循环
(4)执行完循环操作,执行表达式3–循环变量的变化
(5)重复2-4步骤

案例:
public static void main(String[] args) {
//案例1:打印1-100
for (int i = 1; i <= 100; i++) {
System.out.println(i);
}
//案例2:打印1-100的所有的数字之和
//循环条件:没有加到100次
//循环操作:累加
int sum=0;
for(int k=1;k<=100;k++) {
sum=sum+k;
}
System.out.println("1-100之和:"+sum);
//案例3:打印1-100之间所有的偶数
for(int i=1;i<=100;i++) {
if(i%2==0) {
System.out.println(i);
	}
}

for循环也是先判断后执行

  1. 死循环
    (1)while和do while循环的判断条件都是返回一个boolean值,只要使这个值永远为true就会死循环下去,也可以将条件直接写为true
    (2)for循环与while循环不同,要么将判断条件写为永远成立,要么不写判断条件
案例:三种死循环最简方式
//for死循环
public static void main(String[] args) {
        for ( ; ; ) {
         
        }
    }

//while死循环
public static void main(String[] args) {
        while (true){
            
        }
    }

//do while死循环
public static void main(String[] args) {
        do {

        }while (true)
    }
  1. 三种循环对比
    在这里插入图片描述

6.双重循环

打印矩形:
public static void main(String[] args) {
		//使用*号打印5行6列的矩形
	for(int i=1;i<=5;i++) {//外层循环控制行数
		for(int j=1;j<=6;j++) {//内层循环控制个数
			System.out.print("*");
		}
	System.out.println();
	}
}

打印直角三角形:
public static void main(String[] args) {
//打印直角三角形
	for(int i=1;i<=5;i++) {
		for(int j=1;j<=2*i-1;j++) {
		System.out.print("*");
		}
	System.out.println();
	}
}

break和continue在双重循环中的使用:
就近原则:break在哪一层使用就退出哪一层循环,continue在哪一层使用就结束哪一层的当次循环,进入该层的下一次循环。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值