作业:
- 看笔记 写代码
- 先看周五day04
- 装好idea
- idea 安装 拓张补充 6-2 6-3 6-4
- idea写hello world并提交周日之前
局部变量
-
概念:定义在方法里
-
注意:
- 局部变量定义在 方法里
- 局部变量需要手动初始化、手动赋值、不可以不赋值
- 生命周期 : 随着方法的调用而存在,方法运行完毕就释放了 就不存在了
成员变量
-
概念:定义在类里、方法外
-
注意:
-
定义在 类里、方法外
-
成员变量不用初始化,会自动被初始化为默认值,也可以手动设置
-
生命周期 : 整个类中,类消失了,成员变量才会释放
-
默认值:
数据类型 类型名称 字节空间 默认值 取值范围 整数型 byte 1 0 -128~127 short 2 0 int 4 0 正负21.47亿 long 8 0 浮点型 float 4 0.0 double 8 0.0 字符型 char 2 ‘\u0000’ 0~65535 布尔型 boolean 1 false 引用型 String为代表 null
-
方法概念及调用
1.概念:被命名的代码块,方法可以含参数可以不含参数,可以提高代码的复用性。
2.方法定义的格式:
修饰符 | 状态修饰符 | 返回值类型 | 方法名 | (参数列表) | {方法体} |
---|---|---|---|---|---|
比如:public | static | void | main | (String[] args) | {…} |
3.方法调用顺序图
嵌套for循环
-
概念: 存在至少2层for循环,根据外层的条件,判断里层能否执行
如果能执行,就把里层代码都循环完毕后,再继续判断是否执行外层循环的下一次循环 -
格式:
-
break、continue
-
break: 直接结束当前循环,跳出循环体,简单粗暴
break以后的循环体中的语句不会继续执行,循环体外的会执行
注意如果是嵌套for循环,在内层循环遇到了break,只会跳出当前这一层内循环哦 -
continue: 跳出本轮循环,继续下一轮循环
continue后本轮循环体中的语句不会继续执行,但是会继续执行下轮循环,循环体外的也会执行
-
-
今日案例
案例一、
package cn.tedu.basic;
/**本类用于测试各种类型成员变量的默认值*/
public class TestVariable {
//成员变量
/**1.整型类型的默认值为:0*/
static byte a ;//加上static 就是静态的 不加就不是静态的
static short b;
static int c;
static long d;
/**2.浮点类型的默认值为:0.0*/
static float e;
static double f;
/**3.char类型默认值为:'\u0000',体现为一个空格 Boolean类型默认值为:false*/
static char g;
static boolean h;
/**4.所有引用类型默认值为:null*/
static String n;
public static void main(String[] args) {
System.out.println(a);//0
System.out.println(b);//0
System.out.println(c);//0
System.out.println(d);//0
System.out.println(e);//0.0
System.out.println(f);//0.0
System.out.println(g);// 空格
System.out.println(h);//false
System.out.println(n);//null
}
}
案例二、
package cn.tedu.basic;
/**本类用于测试成员变量与局部变量*/
public class TestVariable2 {
//2.定义成员变量
/**成员变量
* 1.位置: 类里 方法外
* 2.要求: 无需手动初始化 会自动赋予对应类型的默认值
* 3.生命周期: 在整个类中都生效,类消失,成员变量才消失
* */
static int count = 200;//赋不赋值都可以 不赋值默认为0
public static void main(String[] args) {
//1.定义局部变量
/**局部变量
* 1.位置:在方法里
* 2.要求:必须手动初始化(就是手动赋值,不赋值不行)
* 3.生命周期:随着方法的存在而存在,对应的代码执行完毕,局部变量随之释放
* */
int sum = 100;//int sum; sum = 100; 不可以只写 int sum 而不赋值
System.out.println(sum);
}
}
案例三、
package cn.tedu.method;
/**本类用作方法的入门案例*/
public class TestMethod {
public static void main(String[] args) {
System.out.println(1);//输出1
/**2.我们通过方法名+参数列表 的方式来调用方法的功能*/
method1();//调用方法1
System.out.println(2);//输出2
method2(3);
method3(4,7);//method3 接收两个整型数据a、b;并打印a+b
String s =method4();// 定义 s 获取 method4 的返回值
System.out.println(s);
int n = method5(4);
System.out.println(n);//16
}
/**如果一个方法想要返回值,那么必须修改方法的返回值类型
* 并且要return这个类型结果
* 如果一个方法的返回值类型是void,那么热不允许有返回值*/
private static int method5(int a) { //返回值类型是int,返回值是参数的平方
return a*a;
}
private static String method4() {//给method4返回值 返回值类型是string 返回值是666
return "666";
}
private static void method3(int a,int b) {
System.out.println(a+b);
}
/*本方法用于测试方法的参数列表,方法的参数在小括号里*/
private static void method2(int age) {//private私有的 只在自己类里可用
System.out.println("海绵宝宝今年"+age+"岁了~");
}
/**1.方法的修饰符 方法的返回值类型 方法名(参数列表){方法体}*/
public static void method1() {//创建一个返回值为空的方法 输出5、6、7
System.out.println(5);
System.out.println(6);
System.out.println(7);
}
}
案例四、
package cn.tedu.method;
public class TestMethod2 {
public static void main(String[] args) {
//需求1:定义一个方法run 没有参数 没有返回值 打印:小狗DOG跑的老快了
//调用方法:方法名+参数列表
run();
//需求2:定义一个方法eat 参数int n 没有返回值 打印:小狗今晚要吃n个肉包子
eat(1);
//需求3:定义一个方法play,参数 String host 返回值是 String "飞盘" 打印:小狗与主人host玩的很开心
String r =play("大王");
System.out.println(r);
}
public static String play(String host) {
System.out.println("小狗与主人"+host+"玩的很开心");
return "飞盘";
}
private static void eat(int n) {
System.out.println("小狗今晚要吃"+n+"个肉包子");
}
public static void run() {//run是静态的 因为main方法是静态的
System.out.println("小狗DOG跑的老快了");
}
}
案例五、
package cn.tedu.basic;
/**本类用于测试for循环*/
public class TestFor {
public static void main(String[] args) {
//1.使用for循环 打印0-10
//for (开始条件;循环条件;更改条件){循环体}
//从哪开始 到哪结束 怎么变化
for(int i =0;i<=10;i++) {
System.out.println(i);
}
//2.使用for循环 打印10-1
//for (开始条件;循环条件;更改条件){循环体}
//从哪开始 到哪结束 怎么变化
for(int i =10;i>=1;i--) {
System.out.println(i);
}
//3.使用for循环 打印8,88,888,8888
//for (开始条件;循环条件;更改条件){循环体}
//从哪开始 到哪结束 怎么变化
for(int i =8;i<=8888;i=i*10+8) {
System.out.print(i+",");
}
}
}
案例六、
package cn.tedu.basic;
/**本类用于测试for循环结构2*/
public class TestFor2 {
public static void main(String[] args) {
//需求1.打印1-100所有所有数的和
//1.定义一个变量 保存求和结果
int sum = 0;
//2.创建循环 依次循环1-100所有的数
for(int i = 1;i<=100;i++) {
//3.需要将本轮循环到的数字累加
sum+=i;
}
System.out.println("1-100所有所有数的和:"+sum);
//2.打印1-100所有偶数的和
int sum2=0;
for(int i = 1;i<=100;i++) {
if(i%2==0) {
//System.out.println(i);
sum2+=i;
}
}System.out.println("1-100所有偶数的和:"+sum2);
//3.打印1-100所有尾数为7的数的和
int sum3 = 0;
for(int i = 1;i<=100;i++) {
if(i%10==7) {
//System.out.println(i);
sum3+=i;
}
}System.out.println("1-100所有尾数为7的数的和:"+sum3);
//4.打印1-100所有奇数的个数
int count = 0;
for (int i =1;i<=100;i++) {
if(i%2!=0) {
count++;
}
}
System.out.println("1-100所有奇数的个数:"+count);
}
}
案例七、
package cn.tedu.basic2;
/**本类用于测试嵌套for循环*/
public class TestForDemo {
public static void main(String[] args) {
/**总结:外层循环执行1次(控制轮数)
* 内层循环执行多次(在每1轮中都会执行多次)*/
//打印:数字1-3
for(int i =1;i<=3;i++) {
System.out.println("外层循环的第"+i+"轮");
//打印:数字1-5
for(int j =1;j<=5;j++) {
System.out.println("内层:"+j);
}
}
//使用嵌套for循环打印三行五列***的矩形
//*****
//*****
//*****
/**总结:外层循环控制行数
* 内层循环控制的是每行打印的*/
for(int i=1;i<=3;i++) {
for(int j=1;j<=5;j++) {
System.out.print("*");
}
System.out.println();
}
//使用嵌套for循环打印6行的左直角三角形
//*
//**
//***
//****
//*****
//******
for(int i=1;i<=6;i++) {
for(int j=1;j<=i;j++) {
System.out.print("*");
}
System.out.println();
}
}
}
案例八、
package cn.tedu.basic2;
import java.util.Scanner;
/**本类用于测试关键字break continue*/
//需求:找数字88
//提示并接收用户才的数字,用户可以累计猜100次,如果不是88,则继续猜,找到88,结束
public class TestBreakAndContinue {
public static void main(String[] args) {
int n = 4;
if (n==4) {
return ;//方法里碰见return 直接结束整个方法
//System.out.println(1); //报错 无法到达的代码 因为在return后边
}
//循环体可以帮助我们完成重复的事情,控制for循环执行100次
for(int i =1 ; i <=100; i ++) {
//在每一次循环中提示并接收用户输入的数字
System.out.println("请输入数字:");
int num =new Scanner(System.in).nextInt();
if (num !=88) {//没猜对
continue;//结束本轮循环,开始下一轮循环
//System.out.println(1); //报错 无法到达的代码 因为在continue后边
}
System.out.println("我是用来测试continue有没有跳过后面代码的");
if(num==88) {//猜对了
System.out.println("恭喜您猜对了!");
break;//结束程序,遇到break 循环就结束了
//System.out.println(1); //报错 无法到达的代码 unreachable code 因为在break后边
}
}
}
}
案例九、
package cn.tedu.basic2;
//九九乘法表
public class TestForTriangle {
public static void main(String[] args) {
for(int i=1;i<=9;i++) {
for(int j=1;j<=i;j++) {
System.out.print(j+"*"+i+"="+(i*j)+"\t");// t 制表符 \ 转义符号
}
System.out.println();
}
System.out.println();
//倒置九九乘法表
for(int i=9;i>=1;i--) {
for(int j=1;j<=i;j++) {
System.out.print(j+"*"+i+"="+(i*j)+"\t");// t 制表符 \ 转义符号
}
System.out.println();
}
}
}