while
初始化
while(循环条件){
循环体
步长
}
int sum=0;
int i=1;
while(i<=100){
sum=sum+i;
i++;
}
System.out.println(sun);
注意
1
循环继续条件应该是放在圆括号以内。
只有当循环条件只包含一条语句或不包含语句时,循环体的花括号才可以省略。
2
要保证循环继续条件最终可以变为false,以便程序能够结束。一个常见的程序设计错误是无限循环的。
如果程序运行了不寻常的长时间二不结束,可能其中有无限循环。
如果你是从命令窗口运行程序,可以按Ctrl+C来结束
3
break不能用在函数代码块里
只能用在switch for while 局部代码块
4
if和switch的区别?
都是做判断选择的
if可以对单一值进行判断 也可以对区间值进行判断
== > <
switch只能对单一直进行判断
警告
1
经常会犯一个错误就是循环多执行一次,或者少执行一次。
这种情况通常称之为差一错误。
count<100和count<=100不一样的。
2
在循环控制时,不要使用浮点值来比较值是否相等。
因为浮点值都是某些值的近似值,使用他们可能导致不精确的循环次数和不准确的结果。
题型
Scanner scanner=new Scanner(System.in);
int com=new Random().nextInt(101);
System.out.print("");
int num=scanner.nextInt();
while(num!=com){
if(num>com){
System.out.print("too high");
}else{
System.out.print("too low");
}
System.out.print("");
num=scanner.nextInt();
}
System.out.print("输入正确:");
改变成for语句
Scanner scanner=new Scanner(System.in);
int com=new Random().nextInt(101);
System.out.print("");
for(int num=scanner.nextInt();num!=com;num=scanner.nextInt()){
if(num>com){
System.out.print("too high");
}else{
System.out.print("too low");
}
System.out.print("");
}
System.out.print("输入正确:");
将while条件改成无限循环
Scanner scanner=new Scanner(System.in);
int com=new Random().nextInt(101);
while(true){ //无条件开启死循环 //改成 for(;;)的无限循环
System.out.print(":");
int num=scanner.nextInt();
if(num>com){
System.out.print("too high");
}else if(com==num){
System.out.print("输入正确:");
break;
}else{
System.out.print("too low");
}
编写程序,读取整数之中最大的数字。并计算最大整数出现的次数
import java.util.Scanner;
class Demo01{
public static void main (String[] args){ //创建输入
Scanner scanner=new Scanner(System.in);
System.out.println("请输入数字");//提醒用户输入数字
int num=0;
int a=scanner.nextInt();//输入数字转化为整形
int max=a;
while(true){ //进入循环
int b=scanner.nextInt();
if(b==0){
break;
}
if(b>max){ //当b大于现在的最大值,就赋值给max,并且num=1;再次出现加1
max=b;
num=1;
}else if(b==max){
num++;
}
}
System.out.println("最大整数"+max);
System.out.println("最大出现次数"+num+"次");
}
}
2
import java.util.Scanner;
class ATM{
public static void main(String[] args) {
/*
1.输入密码 5次输入错误则退出 666666
2.主界面
3.查询余额
4.取钱(钱充足)
5.存钱(整钱100)
*/
Scanner scanner =new Scanner(System.in);
int errorCount=0;
while(true){
System.out.print("请输入密码:");
int pwd=scanner.nextInt();
if(pwd!=666666){
errorCount++; //5
if(errorCount==5){
System.out.println("账号已被冻结!");
return;
}
System.out.println("密码错误,请重新输入!您还有"+(5-errorCount)+"次输入机会");
}else{
break;
}
}
//主界面
int summury=0;//总金额
while(true){
System.out.println("===========欢迎使用鸥鹏ATM自动存取款机===========");
System.out.println("1.存钱");
System.out.println("2.取钱");
System.out.println("3.查询余额");
System.out.println("0.退出");
System.out.print("请选择办理的业务:");
int choice=scanner.nextInt();
switch(choice){
case 1:
System.out.print("请输入存款金额:");
int inmoney=scanner.nextInt();
summury+=inmoney;
System.out.println("存钱完毕!");
break;
case 2:
System.out.println("你的余额为"+summury+"元");
System.out.print("请输入取款金额:");
int outmoney=scanner.nextInt();
if(outmoney>summury){
System.out.println("您的余额不足!");
}else{
summury-=outmoney;
System.out.println("取款完毕!");
}
break;
case 3:
System.out.println("你的余额为"+summury+"元");
break;
case 0:
System.out.println("谢谢使用,请收好您的卡片!");
return;
}
}
}
}