给JAVA初学者的部分笔记2!

本文深入讲解Java语言的基础语法,包括单继承特性、基本数据类型的输入输出、流程控制语句如if、switch、循环等,并介绍函数的概念及用法。

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

Java语言中的单继承特性,相对于C++中的多继承,具有“简单性”。

  • 在控制台接收带空格的字符串,必须使用nextLine();普通字符串直接用next()即可。
  • UTF-8中一个中文需要3个字节空间;
  • Java中默认导入java.lang包下的所有类。
  • 使用import关键字来导入其他包!
引用Scanner类或其他类的方式:
  • 在语句中直接使用类的全限定名(这种方式代码冗余度高,不推荐使用)
    (java.util.Scanner s=new java.util.Scanner(System.in))
  • 导入所要使用的类(import java.util.Scanner)
  • 引用所要导入类的所属包及其下所有类(import java.util.*)
接收数据:

固定语句:Scanner scan=new Scanner(System.in)
int n=scan.nextInt();接收整型数据
double d=scan.nextDouble();接收浮点型数据
String s=scan.next();接收字符串,如果字符间有空格,只会输出第一个空格之前的数据
String s=scan.nextLine(); 接收一行数据,允许字符之间有空格

流程控制语句
判断

if:如果
if、else if所判断的表达式返回值都为boolean;

  • if条件判断
If(表达式){//表达式为true执行代码块,为false跳过if代码块,继续向下执行
	code;
}
  • if else 代码块
if(表达式){//表达式为true,执行code1;为false,执行code2;
	code1;
}else{
	code2;
}
  • if else if… else 组合代码块
if(表达式1){  
//表达式1为true,执行code1,结束;为false,判断表达式2,为true,执行code2,
// 为false,执行code3;
	code1;
}else if(表达式2){
	code2;
}else{
	code3;
}

注意:
if else if else 语句块自上而下进行判断。
code1,code2,code3,只有一组代码块会执行
if判断语句可以嵌套使用

分支

switch 选择
csase 匹配

switch(表达式){
	//表达式返回的类型可以为:byte,short,int,char,string
	case1:code1;break;
	case2:code2;break...     
	default  :code;							
}

根据表达式返回的值,和case后面的值从第一个向下开始逐一匹配,若匹配成功则执行case后面的code;若果没有匹配成功,则执行default后面的code;凡是遇到break语句,则跳出switch语句快。

循环:

即通过一个条件控制一段代码周而复始的执行。
循环的三要素:

  • 初始化初值
  • 循环条件
  • 迭代操作
while循环:
while(表达式){
	//当满足表达式的条件时,执行code,一旦不满足条件结束循环,不再执行code;
	code;
}

例:

int i = 1;//初始化初值
while(i<=10){//循环条件
	System.out.println("HelloWorld");
	i++;//迭代操作                
	}

while循环主要应用于没有边界的场景中
例:求一个数是几位数。

int n = 123456;//初始化初值
int count = 0;//计数器   用来保存结果(几位数)
while(n!=0){//循环条件
	n/=10;//n = n/10
	count++;
}
System.out.println(count);
do while 循环
do{
	code
}while(表达式);

do while循环先执行code,再进行表达式判断。
while和do while的区别:
while先判断条件,再执行循环体代码,有可能循环体代码一次也不会执行;
do while先执行循环体代码,再判断条件,循环体代码至少会执行一次!

for循环
for(初始化初值;循环条件;迭代操作){
	code;
}

for循环一般用于有明确边界的场景。
例:求1~100 的和

int sum = 0;
for(int i=1;i<=100;i++){
	sum+=i;//sum = sum+i;
}
System.out.println(sum);

for循环执行流程:

  • 先初始化初值;
  • 再执行条件判断,当满足条件时执行循环体中的内容,不满足条件时退出循环。
  • 迭代操作,执行第二步。
两种死循环:
1for(;;){
	code;
}
2for(true){
	code;
}

System.out.println(“n”);//在死循环的代码后面不能有其他语句,否则编译也通不过,报错:无法访问的语句。

多层循环:
for(;;){
	for(;;){
		code;
	}
}

不建议使用3层及以上的循环,否则代码的执行效率就会很低。

流程控制:

break:中断 只跳出本层循环。
continue:继续 结束本次循环,继续执行下次循环
return:返回 结束本函数。return后面不能再有语句,否则会编译出错。

函数:
修饰符 返回值类型 函数名(参数列表){
	实现部分;
}
函数的优点:
  • 可以减少代码的冗余,即调高了代码的重用性
  • 增加了代码的灵活性

函数名:代码块的名字,命名时遵循驼峰命名法;
通过函数名可以调用函数。

函数分两个部分:
  • 声明部分
    修饰符+返回值类型+函数名+参数列表
  • 实现部分。
    {}中可以写符合规范的任意代码。
参数列表:
  • 参数列表用来处理代码中需要变化的部分。
  • 参数列表中可以不定义参数,也可以定义多个参数,多个参数之间用逗号隔开。
  • 函数的参数列表中的参数叫做形式参数(简称形参),只关心参数类型,不关心参数具体的数值。
  • 参数列表中如果规定了形参,那在调用函数时要传入与形参数据类型一致的实际参数(简称实参)。
返回值:

返回值是让我们得到函数的结果。
当函数声明了返回值,就必须return一个结果。
注意:在if判断以及分支中,要保证每个分支都有返回结果(return 语句)。

return用法:

1、用在没有返回值的函数中,表示退出当前函数,函数执行结束。
2、用在有返回值的函数中,调用该函数时,会给调用者返回一个结果。

重载:

作用:屏蔽使用者的差异,给使用方法的人带来方便。

语法:
  • 方法名必须一致。
  • 参数列表必须不同(参数数据类型不同、参数个数不同、参数数据类型的顺序不同)
  • 对于返回值没有要求,可以有,也可以没有。
可变参数:

定义在参数列表中。
格式:数据类型 … 变量名
注意:

  • 可变参数必须放在参数列表的最后一个
  • 可变参数只能有一个
  • … 前后的空格可以写也可以不写
  • 访问可变参数可以通过下标访问,和数组类似
递归:

递归方法:一种自己调用自己的方法。
例:
1> 用递归来求阶乘

public static int jc(int n){//求阶乘
	if(n==1){
		return 1;
	}
	return n*jc(n-1);
}

2>递归求斐波那契第n项

public static int fibonacci(int m){//递归求斐波那契第n项
	if(m==1||m==2){
		return 1;
	}
	return fibonacci(m-1)+fibonacci(m-2);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值