Java学习之路
- Java第四讲
- 循环结构:
- 跳出
- 变量
- 案例 一
- 案例二
Java第四讲
循环结构:
循环结构:
1. while:
结构:while(条件){代码块}
条件:一个结果为boolean类型的表达式,为true则循环执行,为false则循环不执行。
{代码块}:当条件为true是执行的内容
注意:条件部分一定为变量且不能让变量为固定值。如果条件部分的值固定为ture,则当前循环为死循环。
停止:创建一个条件,使用if进行判断,当条件达到某标准时,改变while循环条件值,由原来的ture变为false,从而结束循环。
应用环境:当循环次数不确定时候。
2. do..while..
结构:do{代码块}while{条件}
执行顺序:先执行一次代码块,然后使用条件进行判断,条件为ture继续,为false结束循环
3. for 结构:for (int i = 0; i < 10; i++) {代码块/循环体}
int i = 0;表示循环的初始条件
i < 10;表示循环的判断条件/表达式
i++表示变量的更新
执行流程:创建初始条件,判断条件是否符合,表达式结果为true则循环执行,为false则循环不执行,
当本次循环体执行完毕后进行变量更新,再判断条件是否符合,如此往复,直到条件不符合,循环结束。
注意:初始条件只执行一次。
应用场景:有限次数(明确次数)的循环。
注意:在普通for循环中,小括号中,只需要有两个分号即可,但此种循环为死循环,也可以将初始化部分和变量更改部分放到其他位置。
跳出
continue break
continue:跳出本次循环,当关键字continue被执行时,本次循环结束,之间进入下一次循环。
注意:只能用在循环语句中
注意:continue后面可以跟变量名称,效果为跳转到指定的循环位置。当前变量为在循环关键字(for/while)前面直接声明。
定义方式: out:if(){
}
continue out;
break: 跳出当前循环。当关键字break被执行时,当前循环结束。如果有外层循环,则外层循环继续,吐过没有,则执行后面的
注意:在break之后也可以跟量,定义方式与continue之后的变量定义的方式相同,作用为:跳出指定循环。
退出:reture表示退出(结束)当前程序。
变量
变量:全局变量 局部变量
if块和else块中创建的局部变量互不影响
switch中的每一个块(case、default)之中创建的局部变量互不影响。
循环中创建的局部变量在循环外不能生效。
substring(1,2)作用:截取从指定位置开始到指定位置结束的字符串。参数1:表示开始位置。参数2:表示结束位子
注意:开始位置从0开始。
注意:截取位置:[开始,结束)
注意:如果此方法为一个参数,则此参数表示开始位置,截取到最后。
案例 一
package xiaojun;
import java.util.Scanner;
/**
* 需求说明
循环录入3位会员的信息
会员号合法,显示录入
信息;否则显示录入失败
分析:
1、使用for循环,循环3次
2、会员号为4位数字,会员生日格式:月份/日,会员积分:数字
3、判断会员号合法与否
4、合法即输出会员信息,不合法则提示录入有误
*/
public class text_01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
for(int i=1; i <= 3; i++) {
System.out.println("请输入第"+i+"位会员的信息:");
System.out.print("请输入当前会员的编号:");
String num = "";
//此处需要判断会员号为4位,使用String对象的length()方法可以直接获取到当前字符串的长度,所以此处使用String类型来接收
if(input.hasNextInt()) {
num = input.next();
if(num.length() == 4) {
//满足会员号的要求
}else {
System.out.println("输入错误,请输入四位会员号。");
System.out.println("输入有误,请重新输入。");
i --;
continue;
}
}else {
System.out.println("MDZZ,会员号为4位数字!");
input.next();
System.out.println("输入有误,请重新输入。");
i --;
continue;
}
System.out.print("请输入当前会员的生日:");
String shengri = input.next();
if(shengri.length() == 5) {
//满足基本要求,接下来要做的是:截取前两位和后两位,判断是否符合月份和日的要求。
//截取字符串前两位
String yue = shengri.substring(0, 2);
//将纯数字String对象转换为int类型
int yuefen = Integer.parseInt(yue);
if(!(1 <= yuefen && yuefen <=12)) {
//不满足月份要求
}
//截取字符串后两位
String ri = shengri.substring(3, 5);
int rizi = Integer.parseInt(ri);
if(!(rizi >=1 && rizi <= 31)) {
//不满足日子要求
}
}else {
System.out.println("MDZZ,生日要求为: 月份/日,例:05/02");
System.out.println("输入有误,请重新输入。");
i --;
continue;
}
System.out.print("请输入当前会员的积分:");
int jifen = 0;
if(input.hasNextInt()) {
//满足积分要求
jifen = input.nextInt();
}else {
System.out.println("MDZZ,你家积分是非数字显示的?");
input.next();
System.out.println("输入有误,请重新输入。");
i --;
continue;
}
//所有判断结束
System.out.print("成功录入第"+i+"位会员信息,此会员信息为:\n会员号:"+num+"\t生日为:"+shengri+"\t积分为:"+jifen);
}
}
}
案例二
package com.小军;
import java.util.Scanner;
/**
* 用户登录验证。验证次数最多3次
*
* 分析:有限次数循环,使用for
* 用户输入,需要Scanner对象
* 登录包括:用户名、密码,使用用户输入的内容与既定的用户名密码进行匹配,匹配成功则提示登录成功,否则重新登录并提示剩余次数。
*/
public class text_02 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
String userName = "";
String password = "";
System.out.println("欢迎登录我行我素购物管理系统,请输入用户名密码登录,您共有3次机会。");
for(int i=3;i>=1;i--) {
System.out.print("请输入用户名:");
userName = input.next();
System.out.print("请输入密码:");
password = input.next();
//用户名密码都不为空,开启判断
if(userName.equals("kitty") && password.equals("123")) {
//登录成功
System.out.println("登录成功。");
//登录成功之后,不管循环有没有执行完毕,后面的都将不再执行,所以此处需要跳出循环
break;
}else {
//用户名或密码错误,登陆失败。
if(i == 1) {
System.out.println("用户名或密码错误,请重新登录,登录失败,请重新登陆。您没有机会了。");
}else {
System.out.println("用户名或密码错误,请重新登录,登录失败,请重新登陆。您还有"+(i-1)+"次机会");
}
continue;
}
}
}
}
单词(中文一次,英文三次)-------作业本上完成
- array 数组
- length 长度
- exception 异常
- sort 排序
- type 类型
- reference 引用
- info 信息
简答题--------作业本上完成
- 通常什么情况下使用数组?
- 如何定义一个int数组?
- 怎样引用一个数组中的元素?
- 数组基本要素有那些?
- 使用数组可以四步走,那四步?