循环: 就是重复发生的过程(循环一般有重复的前提条件)。
1.while循环
语法:
while(表达式){
循环体
}
while循环先判断后执行
表达式结果如果是true那么就执行循环体,如果是false就结束循环
示例:打印1到100之间的数字
分析:
循环条件:是否完成打印100次
循环操作:输出,自增
class text{
/**
*打印1到100之间的数
*循环条件1 - 100
*/
public static void main(String args[]){
int i =1;
//i <=100是循环条件,只有循环条件时true的时候才能执行循环体,循环条件只能是true或false
while (i <= 100){
System.out.println(i);
i ++;
}
}
}
2.do…while循环结构
初始化语句;
do {
循环体语句;
条件控制语句;
}while(条件判断语句);
执行流程:
① 执行初始化语句
② 执行循环体语句
③ 执行条件控制语句
④ 执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
⑤ 回到②继续
示例:打印1到100之间的偶数和
class text{
public static void main(String args[]){
int i =1;
int sum = 0;
do{
if(i%2 == 0){
sum += i;
}
i++;
}while(i <= 100);
System.out.println(“1-100之间的偶数和”+sum);
}
}
2.for循环
1.普通for循环
语法:
for:循环
语法: for(表达式1;表达式2;表达式3){
循环体
}
表达式1:计数器的初始化,他只初始化一次
表达式2:循环条件的判断,多次执行
表达式3:修改计数器,多次执行
示例:打印1到100之间的偶数和
class even_number{
public static void main(String[] args){
int sum = 0;
//使用for来打印1到100的所有的偶数和
for(int i = 1; i <= 100; i ++){
if (i % 2 == 0){
sum+=i;
}
}
Systm.out.println(“1 – 100之间的偶数和:”+sum);
}
}
示例:打印5行5列的☆
class start{
public static void main(String[] args){
//控制的是行
for(j = 0;j < 5; j ++){
//打印每列的星
for(int i = 0; i < 5; i ++){
Systm.out.println(“☆”);
}
//换行
Systm.out.println( );
}
}
}
示例:打印乘法口诀
class text{
public static void main(String[] args){
//行的循环
for(int i = 0 ;i <= 9;i ++){
for(int j = 1; j <= i;j ++){
System.out.println(j+“*”+i+”=”+(i*j)+”/t”);
}
System.out.println();
}
}
2.增强for
语法:
for(数据类型 变量名:对象名){
语句体
}
数据类型一定要与对象名里面的数据类型一致(要是什么都有可以写object)
变量名只要符合规范即可
示例:遍历数组(数组后面会提到)
public class enhance_for {
public static void main(String[] args) {
int[] arr = {1,2,3,4,5,6,7};
for(int a :arr){
System.out.print(a + " ");
}
}
}
3.迭代器
需要借助java提供的类:Iterator 在java.util.Iterator包下
一个集合的迭代器。 Iterator代替了Java Collections Framework中的Enumeration 。 迭代器有两种不同的枚举方式:
迭代器允许调用者在迭代期间从底层集合中删除元素,并具有明确定义的语义。
方法名称得到改进。
描述这么多:我们前期只需要知道怎么遍历即可,有通用的格式
语法:
List<String> list= new ArrayList<String>();//首先先定义一个集合
//添加元素
list.add("cs");
list.add("cs1");
//迭代器遍历
Iterator<String> it = list.iterator();//创建迭代器对象
while(it.hasNext()){//如果迭代具有更多元素,则返回true
System.out.print(it.next() + " ");//返回迭代中的下一个元素。
}
其他的也就是List的泛型改一下其他的用法都一样
例子:遍历集合
private static void Demo01() {
List<String> list= new ArrayList<String>(); //List的泛型只能放一个 泛型可写可不写 但是写了之后 添加的东西必须与泛型统一
list.add("cs");
list.add("cs1");
//迭代器遍历
Iterator<String> it = list.iterator();
while(it.hasNext()){
System.out.print(it.next() + " ");
}
System.out.println();
}
例子:学生信息管理系统:
学生类:student.java
import java.util.Scanner;
public class Student {
private String id;
private String name;
private String age;
private String ssex;
public Student() {
}
public Student(String id, String name, String age, String ssex) {
this.id = id;
this.name = name;
this.age = age;
this.ssex = ssex;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getSsex() {
return ssex;
}
public void setSsex(String ssex) {
this.ssex = ssex;
}
public Student input(){
Scanner sc = new Scanner(System.in);
System.out.println("---请输入学生ID号:------");
id = sc.nextLine();
System.out.println("---请输入学生姓名:------");
name = sc.nextLine();
System.out.println("---请输入学生年龄:------");
age = sc.nextLine();
System.out.println("---请输入学生性别:------");
ssex = sc.nextLine();
return this;
}
}
学生实现类Stu_System.java
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Random;
import java.util.Scanner;
public class Stu_System {
static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
ArrayList<Student> list = new ArrayList<Student>();
handle(list);
}
//页面判断
private static void handle(ArrayList<Student> list) {
boolean b = true;
while(b) {
int input = menu();
switch (input){
case 1:
add(list);
break;
case 2:
del(list);
break;
case 3:
update(list);
break;
case 4:
look(list);
break;
case 5:
System.out.println("---成功推出学生系统!!!!---");
System.out.println("---欢迎下次继续登陆!!!!---");
b = false;
break;
default:
System.out.println("输入错误请从新输入:");
}
}
}
//菜单
public static int menu(){
System.out.println("---欢迎登陆学生管理系统---");
System.out.println("-----1.添加学生信息------");
System.out.println("-----2.删除学生信息------");
System.out.println("-----3.修改学生信息------");
System.out.println("-----4.查看学生信息------");
System.out.println("-----5.退出学生系统------");
System.out.println("---请输入您要进行的操作:--");
int input = sc.nextInt();
return input;
}
//添加学生信息
public static void add(ArrayList<Student> list){
System.out.println("--欢迎进入学生添加页面!--");
System.out.println("---请输入学生ID号:------");
String id = sc.nextLine();
System.out.println("---请输入学生姓名:------");
String name = sc.nextLine();
System.out.println("---请输入学生年龄:------");
String age = sc.nextLine();
System.out.println("---请输入学生性别:------");
String ssex = sc.nextLine();
int x = 0;
String line = verify();
System.out.println("---验证码为:" + line);
System.out.println("---请输入验证码:-------");
String line1 = sc.nextLine();
if(line.equals(line1)) {
x++;
list.add(new Student(id, name, age, ssex));
}
if (x==0){
System.out.println("---验证码输入错误!!!---");
}else{
System.out.println("添加成功");
}
}
//删除学生信息
public static void del(ArrayList<Student> list){
System.out.println("--欢迎进入学生删除页面!--");
System.out.println("----请输入学生id号:-----");
String id = sc.nextLine();
int x = 0;
for (int i = 0; i < list.size(); i++) {
Student student = list.get(i);
if (student.getId().equals(id)) {
x++;
String line = verify();
System.out.println("---验证码为:" + line);
System.out.println("---请输入验证码:-------");
String line1 = sc.nextLine();
if(line.equals(line1)) {
list.remove(i);
x++;
}
}
}
if (x == 0) {
System.out.println("----学生不存在----");
} else if(x == 1){
System.out.println("----验证码输入错误---");
}else if(x == 2){
System.out.println("----删除成功------");
}
}
//修改学生信息
public static void update(ArrayList<Student> list){
System.out.println("--欢迎进入学生修改页面!--");
System.out.println("--注意!!!学号不能进行更改");
System.out.println("----请输入学生id号:-----");
String id = sc.nextLine();
int x = 0;
for (int i = 0; i < list.size(); i++) {
Student student = list.get(i);
if (student.getId().equals(id)) {
x ++;
System.out.println("---请输入学生姓名:------");
String name = sc.nextLine();
System.out.println("---请输入学生年龄:------");
String age = sc.nextLine();
System.out.println("---请输入学生性别:------");
String ssex = sc.nextLine();
String line = verify();
System.out.println("---验证码为:" + line);
System.out.println("---请输入验证码:-------");
String line1 = sc.nextLine();
if(line.equals(line1)) {
Student stu = new Student(id, name, age, ssex);
list.set(i, stu);
x++;
}
}
}
if (x==0) {
System.out.println("----学生不存在----");
} else if(x ==1){
System.out.println("----验证码输入错误---");
}else{
System.out.println("----修改成功------");
}
}
//查看学生信息
public static void look(ArrayList<Student> list){
System.out.println("当前学生信息:");
Iterator<Student> it = list.iterator();
while(it.hasNext()){
Student student = it.next();
System.out.println("学生ID:" + student.getId() +" 学生姓名:" + student.getName() +
" 学生年龄:" + student.getAge() + " 学生性别:" + student.getSsex());
}
System.out.println();
}
//验证码
public static String verify(){
StringBuilder sb = new StringBuilder();
for (char c = 'a'; c <= 'z'; c ++) {
sb.append(c);
}
for (char c = 'A'; c <= 'Z'; c ++) {
sb.append(c);
}
for (char c = '0'; c <= 'z'; c ++) {
sb.append(c);
}
StringBuilder sb1 = new StringBuilder();
Random r = new Random();
for (int i = 0; i <4; i++) {
int index = r.nextInt(sb.length());
sb1.append(sb.charAt(index));
}
return sb1.toString();
}
//无用的方法
public static boolean verify_id(String id){
if(id.length()< 5 || id.length() > 10){
System.out.println("密码长度不匹配");
return false;
}
return true;
}
}
上面用到了迭代器