第四天笔记(补)

打卡打卡

哈哈,come on!

局部变量和循环

1.局部变量

局部变量

1.定义的位置 在方法之内

2.没有默认值 必须先赋值再使用

3.作用范围,在当前定位变量紧邻的大括号之内

4.储存位置

​ 基本数据类型 储存在栈(stack)中

​ 引用数据类型 栈中存放的是指向当前对象的引用 真正的值储存在堆(heap)中

5.生命周期 随着方法的入栈(压栈)而生效,随着方法的出栈(弹栈)而死亡

此处有图片

在这里插入图片描述

2.循环
2.1while循环

while:当…

必要条件:

1.计数器:i

2.判断条件 if(条件)boolean类型值

3.循环体:System.out.println("");

4.计数器自增:i++

while循环还可以处理循环次数固定的情况,但是更擅长处理循环次数不确定的情况

package com.qfedu.test2;
/**
 * 	使用while循环实现输出N句好好学习
 * 	while : 当 …… 
 * 	必要条件:
 * 	1.计数器
 * 	2.判断条件
 * 	3.循环体
 * 	4.计数器自增
 * @author WHD
 *
 */
public class Test2 {
	public static void main(String[] args) {
		int i = 1;
		while(i <= 10000) {
			System.out.println("好好学习" + i);
			i++;
		}
		
		System.out.println("程序结束");
	}
}
package com.qfedu.test2;

import java.util.Scanner;

/**
 * 	每天检查学习任务 
 * 	上午学习理论
 * 	下午敲代码
 * 	如果成绩不合格 则继续执行
 * 	成绩合格 停止执行 
 * 	分析:
 * 	1.是否合格可以让用户输入 
 * 	2.根据用户输入的内容来判断是否继续学习
 * @author WHD
 *
 */
public class Test3 {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.println("今天的学习任务是否合格?y/n");
		String answer = input.next();
		while(answer.equals("n")) {
			System.out.println("上午学习理论");
			System.out.println("下午敲代码");
			System.out.println("今天的学习任务是否合格?y/n");
			answer = input.next();
		}
		System.out.println("恭喜你,完成任务");
		
	}
}
2.2do-while循环

do:做…

while和do-while区别?

do-while循环是先执行后判断 不管条件是否成立 至少执行一次

package com.qfedu.test3;

import java.util.Scanner;

/**
 * 	使用do-while循环描述
 * 	赵四先上机练习 如果合格 则完成 不合格 继续 
 * 	do 做……
 * 	while 当……
 * 	while 和 do-while 区别?
 * 	do-while循环是先执行 后判断 不管条件是否成立 至少执行一次 
 * 	while循环是先判断后执行 如果条件不成立 一次都不执行
 * @author WHD
 *
 */
public class Test1 {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		String answer; // 先声明
		do {
			System.out.println("敲代码测试");
			System.out.println("检查是否合格?y/n");
			answer = input.next();
		}while(answer.equals("n"));
	}
}
package com.qfedu.test3;
/**
 * 	使用do-while实现一百遍好好学习
 * 	do-while循环必要条件依然是
 * 	1.计数器初始化
 * 	2.循环体
 * 	3.计数器自增
 * 	4.判断条件
 * @author WHD
 *
 */
public class Test2 {
	public static void main(String[] args) {
		int i = 1;
		do {
			System.out.println("好好学习" + i);
			i++;
		}while(i <= 100);
	}
}
2.3for循环

for:为了

for循环的必要条件与while,do-while都相同

执行顺序

1.计数器初始化,最先执行,并且只执行一次

2.判断条件

3.循环体

4.计数器自增或自减

以上过程执行完表示循环执行了一轮 下一轮 直接从判断体条件开始

package com.qfedu.test4;
/**
 * 	使用for循环实现输出100句好好学习
 * 	for循环的必要条件与while,do-while都相同
 * 	执行顺序
 * 	1.计数器初始化,最先执行,并且只执行一次
 * 	2.判断条件
 * 	3.循环体
 * 	4.计数器自增或者自减
 * 	以上过程执行完表示循环执行了一轮 下一轮 直接从判断条件开始
 * @author WHD
 *
 */
public class Test1 {
	public static void main(String[] args) {
		for(int i = 1; i <= 100; i ++) {
			System.out.println("好好学习" + i);
		}
		
		for(int i  = 100 ; i > 0; i--) {
			System.out.println("新的好好学习" + i);
		}

	}
}
package com.qfedu.test4;

import java.util.Scanner;

/**
 * 	通过循环录入5门成绩 并且计算平均分
 * 	分析:
 * 	1.首先是需要重复的录入成绩 使用循环
 * 	2.因为次数确定所以使用for循环 更为简洁
 * @author WHD
 *
 */
public class Test2 {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		double sum = 0;
		for(int i = 1; i <= 5;i ++) {
			System.out.println("请输入第"+ i +"门成绩");
			double score = input.nextDouble();
			sum += score;
		}
		System.out.println("平均分是" + (sum / 5));

	}
}
package com.qfedu.test4;

import java.util.Scanner;

/**
 * 	使用for循环实现加法表
 * 	分析:
 * 	1.左侧第一个数是递增的 所以我们可以定义计数器从0 开始 小于等于 我们输入的数
 * 	2.中间的数是递减的 所以我们可以使用输入的数减去i  得到递减的效果 
 * 	3.最后的结果就是我们输入的数
 * 	4.中间的 + 号是字符串 =号也是字符串
 * @author WHD
 *
 */
public class Test3 {
		public static void main(String[] args) {
			Scanner input = new Scanner(System.in);
			System.out.println("请输入一个数字");
			int num = input.nextInt();
			for(int i = 0;i <= num;i++) {
				System.out.println(i + "+" + (num - i) + "=" + num);
			}
		}

}
package com.qfedu.test4;
/**
 * 	for循环常见问题
 * @author WHD
 *
 */
public class Test4 {
	public static void main(String[] args) {
		// 1. 计数器没有初始化
//		int i = 0;
//		for(;i < 10; i++) {
//			
//		}
		
		// 2.没有判断条件
//		for(int i = 0;;i++) {
//			System.out.println("执行for循环" + i);
//		}
		
		// 3.计数器没有变化
//		for(int i = 0;i< 10;) {
//			System.out.println("计数器没有变化");
//			i++;
//		}
		
		
		// 4.for循环括号内只写两个分号;
		for(int i = 0;i < 10;) {
			System.out.println("死循环");
		}
		
		// System.out.println("程序结束"); 因为上边的for循环是死循环 所以 代码不能 执行到这里
				// 5.死循环
//		for(;true;) {
//			
//		}
		
	}
}
3.break和continue
3.1break

break:打破,折断

break 关键字可以用switch中表示跳出当前switch之后的代码

也可以用于循环中 表示退出(中断)循环 没有执行完的循环次数 不在执行 直接执行循环以后的代码

break只能用于switch和循环

break通常结合流程控制语句来使用if-else

package com.qfedu.test5;
/**
 * 	break 关键字可以用于switch中 表示跳出当前switch语句 执行switch之后的代码
 * 	也可以用于循环中 表示退出(中断)循环 没有执行完的循环次数 不再执行  直接执行循环以后的代码
 * 	break只能用于switch和循环 
 * 	break通常结合流程控制语句来使用 if - else 
 * 	
 * @author WHD
 *
 */
public class Test1 {
	public static void main(String[] args) {
		// 使用循环模拟跑圈 跑到第8圈 太累了 不跑了
		for(int i = 1; i <= 10; i++) {
			// 需要拼接字符串的位置 写上一对双引号 然后双引号中写上两个加号
			System.out.println("跑步第"+ i +"圈");
			if(i == 8) {
				System.out.println("太累了");
				break;
				// System.out.println("nnnnnn");
			}
		}
		System.out.println("比赛结束");
	}
}
package com.qfedu.test5;
/**
 * 	while循环中使用break
 * @author WHD
 *
 */
public class Test2 {
	public static void main(String[] args) {
		int i = 1;
		while(i <= 10) {
			System.out.println("跑步第" + i + "圈");
			if(i == 5) {
				System.out.println("太累了,退出比赛");
				break;
			}
			i++;
		}
		System.out.println("程序结束");
	}
}
package com.qfedu.test5;
/**
 * 	do-while循环中使用break
 * @author WHD
 *
 */
public class Test3 {
	public static void main(String[] args) {
		int i = 1;
		do {
			System.out.println("跑步第" + i + "圈");
			if(i == 9) {
				System.out.println("太累了");
				break;
			}
			i++;
		}while(i <= 10);
		System.out.println("程序结束");
	}
}
3.2continue

continue:继续,延续

只能用于循环中,表示跳出本次循环,继续执行下次循环

面试题:

break和continue的区别?

break是中断整个循环,没有执行完的次数,不再执行

continue是跳出本次循环,继续执行下一循环

package com.qfedu.test5;

import java.util.Scanner;

/**
 * 	continue  继续 延续的意思
 * 	continue只能用于循环中
 * 	表示跳出本次循环 继续执行下一次循环
 * 	break和continue的区别?
 * 	break是中断整个循环,没有执行完的次数,不再执行
 * 	continue是跳出本次循环,继续执行下一循环
 * @author WHD
 *
 */
public class Test4 {
	public static void main(String[] args) {
		// 通过循环录入成绩 统计分数大于80的人数占比
		Scanner input = new Scanner(System.in);
		System.out.println("请输入人数");
		int personNumber = input.nextInt();
		double sum = 0; // 这个变量用于统计大于80的人数
		for(int i = 1; i <= personNumber;i++) {
			System.out.println("请输入第"+ i +"个人的成绩");
			int score = input.nextInt();
			if(score < 80) {
				System.out.println("continue执行了" + i);
				continue;
			}
			System.out.println("分数大于等于80,没有跳出循环,没有执行continue");
			sum++;
		}
		
		System.out.println("大于80的人数占比" + (sum / personNumber * 100) + "%");
		
		
	}
}
package com.qfedu.test5;
/**
 * 	break和continue对比
 * @author WHD
 *
 */
public class Test5 {
	public static void main(String[] args) {
		for (int i = 0; i <= 10 ; i++) {
			if(i == 5) {
				System.out.println("退出本次循环");
                // 将continue改为break查看效果
				continue;
			}
			System.out.println(i);
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值