一.do…while循环
格式:
初始化语句;
do {
循环体语句;
控制条件语句;
} while(判断条件语句);
二.跳转流程控制的三个关键字
1.break: 跳出当前循环,执行循环外的代码,只能在switch和循环语句中使用,离开这两个场景直接报错
2.continue: 跳过本次循环,继续下一次循环,只能在循环中使用,离开场景就报错
3.return: 结束当前正在运行的代码,相当于结束掉整个程序的运行,没有特定场景,还可以当做方法的返回值关键字使用
三.方法的目的:将公共的功能抽取出来,方便多次使用,避免重复
方法的格式:
修饰符 返回值类型 方法名(参数列表){
方法体;
}
格式解释:
修饰符: public static (暂时使用)
返回值类型:
无返回值方法: void
有返回值方法: 数据类型
方法名: 小驼峰
参数列表: 可以没有,可以有一个,可以有多个
方法体:要实现的功能,有返回值的方法必须要return
注意事项:
1.方法不调用不执行
2. 方法与方法是平级关系不能嵌套定义
3. 有返回值的方法必须return
4. return 后面的值必须和返回值类型一致
5. 多个参数之间使用逗号隔开
四.方法的重载:(overload):
概念:一个类中可以存在多个名字相同的方法,但是必须保证参数的个数或类型不同,与返回值无关
方法的重写:(override):
五.重要例题1:
/**
* 循环登录:
需求: 1.控制台提示用户输入密码("请输入密码")
2.用户输入密码 int
3.如果用户输入的密码不等于1234,回到步骤1
4.如果用户输入的密码等于1234,提示登录成功
*/
public class CircleLoginDemo {
/**
* 思路:
1. 循环: 不知道循环的次数: while
2. 循环的条件: 用户的输入不等于1234
3. 循环体: 提示用户输入密码,用户输入密码
4. 条件控制语句: 用户重新输入密码
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入密码");
int password = sc.nextInt();
while(password != 1234) {
System.out.println("请输入密码");
password = sc.nextInt();
}
System.out.println("登录成功");
}
}
/**
* 将上述程序使用do...while循环改写:
*/
public class CircleLoginDemo2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String password;//局部变量不赋初值不能使用
do {
System.out.println("请输入密码");
password = sc.nextLine();// 赋值的操作
}while(!"abc1234".equals(password));
System.out.println("登录成功");
}
}
六.重要例题2:
/*
*
假设一个简单的ATM机的取款过程是这样的:
首先提示用户输入密码(password),
最多只能输入三次,超过3次则提示用户“密码错误,请取卡”结束交易。
如果用户密码正确,
再提示用户输入取款金额(amount),
ATM机只能输出100元的纸币,一次取钱数要求最低100元,最高1000元。
若用户输入的金额符合上述要求,则打印输出用户取得钱数,
最后提示用户“交易完成,请取卡”,否则提示用户重新输入金额。
假设用户密码是111111,请编程实现。
*
*/
import java.util.Scanner;
public class teat4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int money=2000;
for(int i=0;i<3;i++){
System.out.println("请输入密码,您还有"+(3-i)+"次机会");
int password=sc.nextInt();
if(password!=111111){
if(i==2){
System.out.println("错误次数已达到上限,卡已锁死,请明天继续");
break;
}else{
System.out.println("密码输入有误,请重新输入");
continue;
}
}
while(money>=100){
System.out.println("请输入取款金额:");
int salary=sc.nextInt();
if(salary>=100&&salary<=1000&&salary%100==0){
System.out.println("取款金额为"+(salary)+"元");
money=money-salary;
System.out.println("余额为"+money+"元");
}else{
System.out.println("操作错误");
} System.out.println("请选择是否继续:1.继续 2.退出");
int num=sc.nextInt();
if (num==2){
System.out.println("退出成功,欢迎下次再来");
return;
}
} System.out.println("余额不足");
break;
}
}
}