Java笔记05:循环结构(下)
1. 生成随机数
import java.util.Random;
Random ran=new Random();
//生成整数
int xxx=ran.nextInt(<随机范围>);
xxx可能出现的数值是
0 ~ 随机范围-1
例如ran.nextInt(10)
可能产生的数值就是0~9
2. do-while循环
语法
do{
//条件为真时运行的代码
}while(<条件>);
3. while和do-while循环的区别
1) while循环:
先判断,后执行
初始条件不满足,一次都不执行
2) do-while循环:
先执行,后判断
初始条件不满足,也会至少执行一次
理解时,理解为:
while循环比do-while循环
多判断一次
4. for循环
1) for循环语法
for(表达式1;表达式2;表达式3){
//循环体
}
- 表达式1:声明循环变量
- 表达式2:循环条件
- 表达式3:变量的更新
注意:
- 表达式1,2,3,均可以省略 表达式2省略默认为true 但是两个 ; 不能省略
- 表达式1中可以声明多个变量,用,分隔
- 表达式3中可以多个变量的更新用,分隔
- for循环适合处理循环次数固定的循环
3 小练习
1) 机票价格按照淡季旺季、
头等舱和经济舱收费、
输入机票原价、月份和1头等舱或2经济舱,
其中旺季(5-10月)
头等舱9折,经济舱85折,
淡季(11月到来年4月)
头等舱7折,经济舱65折,
最终输出机票价格
package day05.am;
import java.util.Scanner;
public class Test3_2Demo {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.println("请输入机票原价");
double price=scan.nextDouble();
System.out.println("请输入月份");
int month=scan.nextInt();
System.out.println("舱级(1.头等舱 2.经济舱)");
int level=scan.nextInt();
//旺季
if(month>=5 && month<=10) {//头等舱
if(level==1) {
price*=0.9;
}else {//经济舱
price*=0.85;
}
}else {//淡季
if(level==1) {//头等舱
price*=0.7;
}else {
price*=0.65;
}
}
System.out.println("折后机票价格为:"+price);
}
}
do-while
1) 使用do-while循环编写
小明第一个月工资4000
以后每个月比上个月多200
计算12个月小明总共能拿到多少工资
package day05;
public class DoWhileTask0 {
public static void main(String[] args) {
int sum=0;
int salary=4000;
int i=1;
do {
sum+=salary;
i++;
//System.out.println(i+">"+sum);
salary+=200;
} while (i<=12);
System.out.println(sum);
}
}
2) 使用do-while循环编写
小明第一个月工资4000
以后每个月比上个月多200
当小明总共拿到的工资超过
150000时需要多少个月
package day05;
public class DoWhileTask {
public static void main(String[] args) {
int sum=0;
int salary=4000;
int i=0;
do {
sum+=salary;
salary+=200;
i++;
System.out.println(i+">"+sum);
} while (sum<150000);
System.out.println(i);
}
}
for循环联系
1) 用户在循环中输入5个学生的成绩
计算他们的平均分
break
1) 编写一个循环
循环中用户输入
数字如果用户输入的
数字是负数
循环结束
package day05;
import java.util.Scanner;
public class BreakTask1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int num=0;
for(;;) {
num = scanner.nextInt();
if (num<0) {
break;
}
}
System.out.println("over");
scanner.close();
}
}
2) 编写一个循环
循环中用户输入密码(int类型)
如果用户输入的是123456(正确)
循环结束
并输出循环了几次
package day05;
import java.util.Scanner;
public class BreakTask2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int keyWord=0;
System.out.println("请输入密码:");
int i=0;
for(;;) {
keyWord = scanner.nextInt();
i++;
if (keyWord==123456) {
break;
}
System.out.println("密码错误");
}
System.out.println("循环了"+i+"次");
scanner.close();
}
}
循环嵌套
1) 使用循环嵌套实现输出
九九乘法表
package day05.pm;
public class NineNineDemo {
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+" ");
}
System.out.println();
}
}
}