1.for循环
格式:
for(1初始化语句;2条件判断语句;3条件控制语句){
4循环体语句;
}
执行流程:
1 2 4 3 2 4 3 2
为false时循环结束
1.1输出10次信息
package com.itheima01;
public class Demo01for循环10次 {
public static void main(String[] args) {
//输出十次广告
//i的变化是 0 - 9 是十次
for(int i=0; i<10; i++){
System.out.println("夏洛");
}
//i的变化是 1 - 10 也是十次
for(int i=1; i<=10; i++){
System.out.println("马冬梅");
}
//快捷键: 数字.fori
}
}
1.2输出1-5
package com.itheima01;
public class Demo02输出1到5 {
public static void main(String[] args) {
//输出1-5
for(int i=1; i<=5; i++){
System.out.println(i);
}
//输出5-1
for(int i=5; i>=1; i--){
System.out.println(i);
}
}
}
1.3求1-5的和
package com.itheima01;
public class Demo03求和 {
public static void main(String[] args) {
//求1-5的和
int sum = 0;
for (int i = 1; i <= 5; i++) {
sum = sum + i;
}
System.out.println("和是" + sum);
//到底哪些代码要放在循环里,我该怎么思考?
//思考代码需不需要执行多次,如果需要执行多次肯定在循环里,如果只需要执行一次肯定在循环外
/*
执行流程:
i=1 sum = 0 + 1; 1
i=2 sum = 1 + 2; 3
i=3 sum = 3 + 3; 6
i=4 sum = 6 + 4; 10
i=5 sum = 10+ 5; 15
i=6 false
*/
}
}
1.4判断奇偶数
package com.itheima01;
public class Demo04 {
public static void main(String[] args) {
//写一个程序判断并输出0~10之间的每个整数是奇数还是偶数
//循环生成0-10
for (int i = 0; i <= 10; i++) {
//判断是否是偶数
if(i%2 == 0){
System.out.println(i +"是偶数");
}else{
System.out.println(i+"是奇数");
}
}
}
}
2.while循环
格式:
初始化语句;
while(条件判断语句){
循环体语句;
条件控制语句;
}
2.1输出10次信息
package com.itheima01;
public class Demo05while循环10次 {
public static void main(String[] args) {
int i = 1;
while(i<=10){
System.out.println("马冬梅");
i++;
}
}
}
2.2求1-5的和
package com.itheima01;
public class Demo06求和 {
public static void main(String[] args) {
//求1-5的和
int sum = 0;
int i = 1;
while(i<=5){
sum += i;
i++;
}
System.out.println("和是" + sum);
}
}
2.3珠穆朗玛峰
package com.itheima01;
public class Demo07珠穆朗玛 {
public static void main(String[] args) {
//一张纸的厚度是0.0001米,珠穆朗玛峰的高度是8848米,在理论情况下,
//一张纸折叠多少次能超过珠穆朗玛峰的高度?
//折叠一次就让纸厚度乘2,因为要折叠很多次,要用循环
//循环结束条件paper>shan 循环继续条件paper<=shan
//结果是次数,要定义变量存储次数
//定义纸的厚度
double paper = 0.0001;
//定义山的高度
int shan = 8848;
//定义变量存次数
int count = 0;
//循环
while(paper<=shan){
paper = paper * 2;
count++;
}
//打印次数
System.out.println(count);
}
}
3.do…while循环
初始化语句;
do {
循环体语句;
条件控制语句;
} while(条件判断语句);
4.三种循环的区别
for:
适用于明确循环次数的情况
while:
适用于不明确循环次数的情况
while循环更容易写死循环(无限循环)
while(true){
System.out.println("马冬梅");
}
do..while:
没有用..
5.循环跳转语句
continue:
用在循环里,用来跳过本次循环,会进入到下一次的循环
break:
用在循环里,用来结束当前循环,把整个循环结束
package com.itheima02;
public class Demo01循环跳转语句 {
public static void main(String[] args) {
//break和continue必须放在判断语句中,否则没有意义
//输出1-10的循环
for (int i = 1; i <= 10; i++) {
if(i==5){
continue; //跳过本次循环,进入下次循环
}
System.out.println(i);
}
// 1 2 3 4 6 7 8 9 10
//输出1-10的循环
for (int i = 1; i <= 10; i++) {
if(i==5){
break; //直接结束循环
}
System.out.println(i);
}
// 1 2 3 4
}
}
6.循环嵌套【扩展内容】
package com.itheima02;
public class Demo02循环嵌套 {
public static void main(String[] args) {
//每天有24小时,每个小时有60分钟,打印从0时0分到23时59分
//有24个小时,我要写24行代码?一定是循环
//写一个循环,0 - 23 , i代表小时
for (int i = 0; i < 24; i++) {
//每个小时有60分钟,我要写60行代码?一定是循环
//写一个循环,0 - 59 ,j代表分钟
for (int j = 0; j < 60; j++) {
//输出
System.out.println( i + "时" + j + "分");
}
}
/*
执行流程:
i=0 j=0 0时0分
j=1 0时1分
j=2 0时2分
j=2 0时3分
...
j=59 0时59分
i=1 j=0 1时0分
j=1 1时1分
j=2 1时2分
j=2 1时3分
...
j=59 1时59分
i=23
j=59 23时59分
*/
}
}
7.随机数
1.导包
import java.util.Random;
2.创建对象
Random r = new Random();
3.获取随机数
0-9的随机数
int i = r.nextInt(10);
8.猜数字小游戏
package com.itheima02;
import java.util.Random;
import java.util.Scanner;
public class Demo04猜数字小游戏 {
public static void main(String[] args) {
/*
程序自动生成一个1-100之间的数字,使用程序实现猜出这个数字是多少?
根据不同情况给出相应的提示
如果猜的数字比真实数字大,提示你猜的数据大了
如果猜的数字比真实数字小,提示你猜的数据小了
如果猜的数字与真实数字相等,提示恭喜你猜中了
知识点:
猜多次又不知道具体几次 while
随机数 Random
猜就是键盘录入 Scanner
判断 if
猜中了 break
*/
Random r = new Random();
int guess = r.nextInt(100)+1;
//生成随机数
//循环
while(true) {
//让用户键盘输入
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个1-100的整数:");
int num = sc.nextInt();
//判断用户输入的大小
if (num > guess) {
//猜大了
System.out.println("你猜大了~");
} else if (num < guess) {
//猜小了
System.out.println("你猜小了~");
} else {
//猜中了
System.out.println("恭喜你猜对了!");
break;
}
}
}
}
9.存钱案例
package com.itheima02;
import java.util.Scanner;
public class Demo06 {
public static void main(String[] args) {
//银行可以存钱,可以存1年 2.25% 2年 2.75% 3年 3.25% 5年 4.15%
//存钱要大于1000元
//循环
while(true) {
//键盘输入金额
Scanner sc = new Scanner(System.in);
System.out.println("请输入金额:");
int money = sc.nextInt();
//判断金额是否大于等于1000
if (money >= 1000) {
//定义变量保存本息总额
double bx = 0;
//如果大于等于1000就继续输入年份
System.out.println("请输入存几年:");
int year = sc.nextInt();
//判断年份,根据年份算利息
if(year==1){
bx = money + money*0.0225*year;
}else if(year==2){
bx = money + money*0.0275*year;
}else if(year==3){
bx = money + money*0.0325*year;
}else if(year==5){
bx = money + money*0.0415*year;
}else{
System.out.println("你输入的年份错误");
}
System.out.println("你一共能拿到的钱是:" + bx); //这里没有考虑年份错误的情况,自己可以想象办法
//结束循环
break;
} else {
//如果小于1000就重新输入
System.out.println("存的金额要大于等于1000");
}
}
}
}