今天涉及的内容是有关流程控制语句、跳转控制语句、数组的定义、Java中的内存分配部分的内容。
循环结构
(while循环语句)
while循环语句的基本格式:
基本格式:
while(判断条件语句){
循环体语句;
}
扩展格式:
while(判断条件语句){
循环体语句;
控制条件语句;
}
范例1:
public class WhileDemo1 {
public static void main(String[] args) {
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("*************使用for循环改进********************");
for(int i=1;i<=3;i++){
System.out.println("HelloWorld");
}
System.out.println("***********使用while循环改进*****************");
int i = 0;
while(i<3){
System.out.println("HelloWorld");
i++;
}
}
}
//HelloWorld
//HelloWorld
//HelloWorld
//*************使用for循环改进********************
//HelloWorld
//HelloWorld
//HelloWorld
//***********使用while循环改进*****************
//HelloWorld
//HelloWorld
//HelloWorld
范例2
/*
用while循环实现1-100之和
注意:for循环与while循环之间的小区别:
1、使用区别:控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,
而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。
原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。
2、场景区别:
for循环适合针对一个范围判断进行操作
while循环适合判断次数不明确操作
*/
public class WhileDemo2 {
public static void main(String[] args) {
int sum = 0;
for(int i=1;i<=100;i++){
sum += i;
}
System.out.println("1-100的和为:"+sum);
System.out.println("**********************使用while循环进行改进*********************");
int i =1;
sum = 0;
while(i<=100){
sum+=i;
i++;
}
System.out.println("1-100的和为:"+sum);
}
}
//1-100的和为:5050
//**********************使用while循环进行改进*********************
//1-100的和为:5050
范例3:
public class WhileDemo3 {
public static void main(String[] args) {
int maxHeight = 884800;
int count = 0;//定义的是总的折叠次数
int thick = 1;//定义的是厚度
while(thick<=884800){
thick *= 2;
count++;
}
System.out.println("折叠"+count+"次到8848米,"+"厚度为:"+thick);
}
}
//折叠20次到8848米,厚度为:1048576
循环结构(do…while循环语句)
do…while循环语句格式:
基本格式:
do{
循环体语句;
}while(判断条件语句);
扩展格式:
do{
循环体语句;
控制条件语句;
}while(判断条件语句);
范例1:
public class DoWhileDemo1 {
public static void main(String[] args) {
//求1-100的和
int i = 0;//定义的是循环的次数
int sum = 0;//定义的是总和
do{
sum+=i;
i++;
}while(i<=100);
System.out.println("1-100的和为:"+sum);
}
}
//1-100的和为:5050
3. 跳转控制语句
主要有三个跳转语句:
break 中断
continue 继续
return 返回
break:
使用场景:
1、在选择结构switch语句中
2、在循环语句中,加入了if判断的情况
3、离开使用场景的存在是没有意义的
范例1:
```c
import java.util.Scanner;
public class ControlDemo1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入你想要的星期的数字(1-7)");
int num = sc.nextInt();
//break跳出当前控制语句
switch (num){
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
default:
System.out.println("程序没有匹配");
break;
}
System.out.println("*********************************");
//循环打印1-10,加入break,并在3的时候停止for循环
for(int i=1;i<=10;i++){
if(i==3){
break;
}
System.out.println(i);
}
}
}
循环中break的作用:
跳出单层循环:
跳出多层循环:
带标签的跳出:
格式:标签名: 循环语句
范例2:
public class ControlDemo2 {
public static void main(String[] args) {
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(i+"*"+j+"="+(i*j)+'\t');
}
System.out.println();
}
System.out.println("*******加入break循环*********");
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
if(j==4){
break;
}
System.out.print(i+"*"+j+"="+(i*j)+"\t");
}
System.out.println();
}
System.out.println("*****加入break带标签跳出多层循环******");
wc:for(int i=1;i<=9;i++){
nc:for(int j=1;j<=i;j++){
if(j==4){
break wc;
}
System.out.print(i+"*"+j+"="+(i*j)+"\t");
}
System.out.println();
}
}
}
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
*******加入break循环*********
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12
5*1=5 5*2=10 5*3=15
6*1=6 6*2=12 6*3=18
7*1=7 7*2=14 7*3=21
8*1=8 8*2=16 8*3=24
9*1=9 9*2=18 9*3=27
*****加入break带标签跳出多层循环******
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12
循环中的continue:
使用场景:
1、在循环语句中
2、离开使用场景的存在是没有意义的
return:
结束循环其实是结束了main方法
范例:
public class ControlDemo3 {
public static void main(String[] args) {
//循环打印1-10,加入continue
for(int i=1;i<=10;i++){
if(i==3){
continue;//跳出当前此次循环,继续后面循环
}
System.out.println(i);
}//在这里面 3 就被抽走了
System.out.println("********改为return*********");
for(int i=1;i<=10;i++){
if(i==3){
return;
}
System.out.println(i);
}
}
}
//1
//2
//4
//5
//6
//7
//8
//9
//10
//********改为return*********
//1
//2
方法
什么是方法:
方法就是完成特定功能的代码块
在很多语言里面都有函数的定义
函数在Java中被称为方法
方法的语句格式:
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…) {
函数体;
return 返回值;
}
一些方法中的名词解释:
修饰符
修饰符 比较多,后面会详细介绍。目前public static
返回值类型:
就是return返回的值的类型
方法名:
一个名称,为了方便我们调用方法,自己起的名字,方便我们调用。
参数:
1、形参
定义在方法上的参数名
2、实参
实际调用方法的时候传入的值
参数类型:
限定调用方法时传入参数的数据类型
参数名:(形参)
是一个变量,接收调用方法时传入的参数。
函数体:
完成功能的代码,实现方法的主要逻辑功能
return:
结束方法以及返回方法指定类型的值
返回值:
程序被return带回的结果,返回给调用者
注意:
方法与方法是平级,不能嵌套使用。
范例:
public class FunctionDemo1 {
public static void main(String[] args) {
int x = 10;
int y = 20;
int result = sum(x,y);
System.out.println(result);
}
public static int sum(int x,int y){
int result = x+y;
return result;
}
}
//30
FunctionDemo1图解:
范例:
import java.util.Scanner;
public class FunctionDemo3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入行数");
int x = sc.nextInt();
System.out.println("请输入列数");
int y = sc.nextInt();
printStar(x,y);
}
public static void printStar(int a,int b){
for(int i=1;i<=a;i++){
for(int j=1;j<=b;j++){
System.out.print("*"+"\t");
}
System.out.println();
}
}
}
//请输入行数
//4
//请输入列数
//5
//* * * * *
//* * * * *
//* * * * *
//* * * * *
方法的重载
什么是方法的重载:
在同一个类中,允许存在一个以上的同名方法,
只要它们的参数个数或者参数类型不同即可。
方法重载的特点:
1、与返回值类型无关,只看方法名和参数列表
2、在调用时,虚拟机通过参数列表的不同来区分同名方法
范例:
public class FunctionDemo5 {
public static void main(String[] args) {
//求加法
int a = 1;
int b = 2;
int c = 3;
int d = 4;
byte e = 5;
}
public static int sum(int x,int y){
int result = x+y;
return result;
}
public static int sum1(int x,int y,int z){
return (x+y+z);
}
public static int sum2(int x,int y,int z,int i){
return (x+y+z+i);
}
public static int sum3(int x,byte y){
return (x+y);
}
}
感谢阅读,我是啊帅和和,一位大数据专业即将大四学生,祝你快乐。