目录
需要掌握的知识点:
while循环、do...while循环的区别
1.为什么需要循环?
2.循环是什么?
3.循环有几种格式?语法分别是什么?
4.循环怎么用
5.do...while和while的区分:
1.语法不同
2.执行顺序不同:while是先判断后执行 do..while是先执行后判断
3.当初始条件不满足时,do..while至少会执行一次,而while一次也不执行
while的执行特点:
do{
.....
}while(条件);
int i = 1;
int sum = 0;
do{
sum+=i;
i++;
//先执行循环操作
}while(i<=100);
//在判断循环条件
System.out.println(sum);
二者的区别:
for循环特点:
使用for循环结构的步骤
1、分析循环条件和循环操作
2、套用for语法写出代码
3、检查循环是否能够退出
所有循环常见问题,注意判断值的变化,避免成为死循环:
例如:
break:改break改变程序控制流
用于do-while、while、for中时,
可跳出循环而执行循环后面的语句
continue语句
continue :只能用在循环里
continue 作用:跳过循环体中剩余的语句而执行下一次循环
for (int i = 0; i < total; i++) {
System.out.print("请输入第" + (i + 1) + "位学生的成绩: ");
score = input.nextInt();
if (score < 80) {
continue;
//对录入的分数进行判断,如果小于80,跳出本次循环,执行下一次循环
}
num++;
}
System.out.println("80分以上的学生人数是: " + num);
double rate = (double) num / total * 100;
System.out.println("80分以上的学生所占的比例为:" + rate + "%");
对比break和continue
使用场合
break可用于switch结构和循环结构中
continue只能用于循环结构中 作用(循环结构中)
break语句终止某个循环,程序跳转到循环块外的下一条语句。
continue跳出本次循环,进入下一次循环
知识掌握:
会使用while循环结构
会使用do-while循环结构
会使用for循环结构
会使用break和continue
while练习:
package com.zking.test;
import java.util.Random;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
/*
* 1.什么是循环。
* 重复的执行相同的代码,知道条件不满足,就结束循环。
*
* 2.循环的特点:
* ①循环的条件 ②循环操作
*
* 3.循环结构的语法有几种?
* while do...while for
*
* 4.解析while循环语法:
* ①变量定义 int i = 1;
* while(②条件表达式){//i<=100
* ③循环操作
* ④变量的递增或递减
* }
*
* 执行流程:①②③④ ②③④ ②③④ ②③④ ②③④ ②③④ ②③④
直到②不满足 就退出循环
* 1.①变量的定义----循环的开始次数。
* 2.②条件表达式。 -------判断次数是否满足要求。
* 3.如果满足条件表达式 执行大括号中的代码块③
* 如果不满足条件表达式 退出循环
* 4.执行代码块完毕后,改变次数,如果不改变次数,将会成为死循环.
* 5.改变次数后,重新回到条件表达式进行进行判断看是否满足要求
* ....
* 6.知道不满足条件表达式后 就退出循环
*
*
*
*/
//1.需求:实现打印100遍好好学习天天模仿
//利用while循环解决
// int i = 1;
// while(i<=100) {
// System.out.println("好好学习,天天模仿");
// i++;
// }
//2.打印1-100
// int i = 1;//从第一个数开始打印 1
// while(i<=100) {
// System.out.println(i);//1 2 3
// i++;//i= i+1; i=2 i=3 .... 101
// }
//3.打印100个俯卧撑
// int i = 1;
// while(i<=100) {
// System.out.println("龙锅做第"+i+"个俯卧撑");
// i++;//如果不写,出现死循环
// }
// 4.打印1-100的和----》5050
// int i = 1;//数字1-100
// //定义一个变量来存储1-100的和
// int sum = 0;//容器初始化为0
// while(i<=100) {
System.out.println(i);//1 2
// sum+=i;//sum = sum + i;
// i++;
// }
// System.out.println("和为: "+sum);
/*
* i = 1 i<=100 sum = sum + 1; sum = 1 i++ i = 2
* i = 2 i<=100 sum = sum + 2; sum = 3
*/
//5.计算1-100的偶数和
//写法1
// int i = 2;
// int sum = 0;
// while(i<=100) {
System.out.println(i);
// //将得到的偶数依次叠加到sum容器中
// sum = sum + i;
// i+=2;//i = i + 2;
// }
// System.out.println("和为: " + sum);
//写法②
// int i = 1;
// int sum = 0;
// while(i<=100) {
// if(i % 2 == 0) {
System.out.println(i);
// sum += i;
// }
// i++;
// }
// System.out.println("和为: "+sum);
//6.1-100的奇数和
// int i = 1;
// int sum = 0;
// while(i<=100) {
// if(i%2 == 1) {
// sum+=i;
// }
// i++;
// }
// System.out.println("和为: "+sum);
//7.求出1-100之间的能被3整数或者能被5整除的数有哪些?
// int i = 1;
// while(i <= 100) {
System.out.println(i);
// if(i % 3 == 0 || i % 5 == 0) {
// System.out.println(i);
// }
// i++;
// }
// 求出1900年-2020年 的闰年有多少 并且统计有多少个?
// int year = 1900;
// int count = 0;//定义一个计数器 来统计年份个数
// while(year <= 2020) {
System.out.println(year);
// //判断每个年份是否为闰年
// if(year % 4 == 0 && year % 100 !=0 ||
// year % 400 == 0) {
// System.out.println(year);
// count++;//满足要求 才在该变量上+1
// }
// year++;
// }
// System.out.println("总共有: "+count+"个闰年");
//1-10的偶数个数
// int i = 1;
// int count = 0;//计数器
// while(i<=10) {
// if(i%2==0) {
// System.out.println(i);//2
// count++;
// }
// i++;
// }
// System.out.println("偶数个数为: "+count);
//--------------------------------------------------
//do...while(条件);
/* //①变量初始化
* do{
* ③循环操作
* ④变量的递增或递减
* }while(条件表达式);
*
* 注意事项:
* 1.while后面必须分号结尾。
* 2.do...while的特点:先执行 后判断
*/
//1.1-100的和
// int i = 1;
// int sum = 0;
// do {
// sum+=i;
// i++;
// }while(i>=100);
// System.out.println("和为: "+sum);
---------------------------------------------
// int sb =1;
// int sbb = 0;//保存和
// while(sb>=100) {
// sbb+=sb;
// sb++;
// }
// System.out.println("和为: "+sbb);
// 需求:输入5个人的成绩 计算总和 以及平均分
// Scanner sc = new Scanner(System.in);
// //使用while循环实现
// int i = 1;//从第一个人开始
// int sum = 0;//保存输入的成绩和
// while(i<=5) {
// System.out.println("请输入第"+i+"个人的成绩: ");
// int a = sc.nextInt();// 11 22 33 44 55
// sum+=a;//将输入的每个成绩依次叠加到sum容器中
// i++;
// }
// System.out.println("总分为: "+sum);
// System.out.println("平均分为: "+sum / 5);
// System.out.println("请输入第1个人的成绩: ");
// int a1 = sc.nextInt();
// System.out.println("请输入第2个人的成绩: ");
// int a2 = sc.nextInt();
// System.out.println("请输入第3个人的成绩: ");
// int a3 = sc.nextInt();
// System.out.println("请输入第4个人的成绩: ");
// int a4 = sc.nextInt();
// System.out.println("请输入第5个人的成绩: ");
// int a5 = sc.nextInt();
// int sum = a1+a2+a3+a4+a5;//总分
// int avg = sum / 5;//平均分
//玩猜拳 玩10把 统计玩家赢的次数。
//用户输入
int i = 1;
int count = 0;//统计赢的次数
while (i <= 10) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入要猜的拳:[1.石头 2.剪刀 3.布]");
int player = sc.nextInt();
// 电脑产生
Random rd = new Random();
int computer = rd.nextInt(3) + 1;
switch (player) {
case 1:
if (computer == 1) {
System.out.println("平局");
} else if (computer == 2) {
System.out.println("玩家赢,电脑输");
count++;
} else if (computer == 3) {
System.out.println("玩家输,电脑赢");
}
break;
case 2:
if (computer == 1) {
System.out.println("玩家输,电脑赢");
} else if (computer == 2) {
System.out.println("平局");
} else if (computer == 3) {
System.out.println("玩家赢,电脑输");
count++;
}
break;
case 3:
if (computer == 1) {
System.out.println("玩家赢,电脑输");
count++;
} else if (computer == 2) {
System.out.println("玩家输,电脑赢");
} else if (computer == 3) {
System.out.println("平局");
}
break;
}
i++;
}
System.out.println("\t\t赢了: "+count+"次");
}
}