目录
1、while循环
while(条件){
条件成立时要执行的代码;
使条件趋近于假的操作;
}
逻辑:当条件成立时,执行{}里面的代码,代码执行完毕之后又去判断条件,如果条件还成立继续执行{}里面的代码,........直到某一个时刻条件不成立为止
案例:利用while循环打印1-10之间的所有整数
//利用while循环打印1-10之间的所有整数
int n = 1;
while (n<=10){
System.out.println(n);
n++;
}
//打印10-1之间的所有整数
int m = 10;
while (m>=1){
System.out.println(m);
m--;
}
while的死循环
while(true){
}
/**
* 当不知道要循环多少次时建议使用死循环
* while的死循环
* while(true){
*
* }
*/
//案例:ATM密码验证相关,编写一个程序要求用户输入密码,验证密码是否正确
//如果不正确就一直输入知道正确为止
public class H_while {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int pwd;
while (true){
System.out.println("请输入密码:");
pwd = scanner.nextInt();//读取密码
if (pwd==123456){
break;//结束循环,不让继续输入
}
}
}
}
2、do while循环
do{
要执行的代码;
使条件趋近于假的操作;
}while(条件)
逻辑:先执行{}里面的代码,然后再判断条件是否成立,成立就继续执行,直到条件不成立为止
//do while
int i = 10;
do {
System.out.println(i);
i--;
}while (i>=1);
do while死循环
do{
}while(true)
3、for循环
for(变量的初始化①;条件②;使条件趋近于假的操作④){
要执行的代码③;
}
逻辑:先①-->判断②-->执行③-->执行④-->判断②..........
for (int i = 10; i >= 1; i--) {
System.out.println(i);
}
for死循环
for( ; true ; ){
}
4、练习
使用循环实现ATM的密码验证:验证用户输入的密码是否正确,而且错误的次数最多三次,要做到三次之内任何一次密码成功都应该进入主界面(登录成功),如果三次都失败打印账户已冻结
break:跳出循环
练习1:找出1-100之间所有能同时被3、7整除的数字
int x = 1;
while (x<=100){
if (x%3 == 0 && x%7 == 0) {
System.out.println(x);
}
x++;
}
练习2:计算出1-100之间所有数字的总和
int y = 1;
int total = 0;
while (y<=100){
total = total + y;
y++;
}
System.out.println(total);
练习3:找出两个数字的最小公倍数
//最小公倍数>=更大的那个数
//最小公倍数<=更大的那个数*小的那个数
//[更大的那个数,大*小]
int x = 6;
int y = 2;
//确定更大的数字
int max = 0;
if (x>=y){
max = x;
}else {
max = y;
}
//for循环
for (int i=max;i<=x*y;i++){
if (i%x==0 && i%y==0){ //第一个找到的数字就是最小公倍数
System.out.println(i);
break; //找到之后不应该继续找
}
}
//while循环
int j = max;
while (j<=x*y){
if (j%x==0 && j%y==0){
System.out.println(j);
break;
}
j++;
}
练习4:找出两个数字的最大公约数
int p = 6;
int q = 3;
int min = p<=q ? p : q;
int z = min; //从后向前找
while (z>=1){
if (p%z==0 && q%z==0){
System.out.println(z);
break;
}
z--;
}
练习5:猜数字
//随机生成数字
//1 创建数字随机生成器
Random random = new Random();
//2 利用生成器生成数字
int num = random.nextInt(100)+1;//生成[1-100]之间的数字
int guess;
Scanner scanner = new Scanner(System.in);
while (true){
System.out.println("请输入一个数字");
guess = scanner.nextInt();
if (guess>num){
System.out.println("猜大了");
}else if (guess<num){
System.out.println("猜小了");
}else {
System.out.println("猜中了");
break;//不在继续猜
}
}
5、知识点: 三元运算符、三目运算符
目:只运算符操作的数据个数
单目运算符
++ -- a++ b-- ~c ~5
双目运算符
+ - * / a+b
三目运算符
?:
条件/表达式?值1:值2;
条件/表达式成立吗?成立就得到值1,否则得到值2