for循环
for循环的使用
见 Test01
案例1:循环录入5次int类型的数字,输出总和
案例2:循环录入小明同学的5门课成绩,计算平均分
案例3:循环录入5次int类型的数字,输出最大值
for循环的嵌套
见 Test02
案例1:打印一下图形
****
****
****
for(int i = 0;i<3;i++){//控制行数
for(int j = 0;j<4;j++){//控制列数
System.out.print("*");
}
System.out.println();//换行
}
案例2:打印一下图形
* i=0
** i=1
*** i=2
**** i=3
***** i=4
for(int i = 0;i<5;i++){
for(int j = 0;j<=i;j++){
System.out.print("*");
}
System.out.println();
}
案例3:打印一下图形
*****
****
***
**
*
for(int i = 0;i<5;i++){
for(int j = 0;j<5-i;j++){
System.out.print("*");
}
System.out.println();
}
案例4:打印一下图形
*****
****
***
**
*
for(int i = 0;i<5;i++){
for(int k = 0;k<i;k++){
System.out.print(" ");
}
for(int j = 0;j<5-i;j++){
System.out.print("*");
}
System.out.println();
}
案例5:九九乘法表
for(int i = 1;i<=9;i++){
for(int j = 1;j<=i;j++){
System.out.print(j + "x" + i + "=" + (i*j) + "\t");
}
System.out.println();
}
案例6:九九乘法表
for(int i = 1;i<=9;i++){
for(int k = 1;k<i;k++){
System.out.print("\t");
}
for(int j = i;j<=9;j++){
System.out.print(i + "x" + j + "=" + (i*j) + "\t");
}
System.out.println();
}
while循环
语法结构: while(表达式){ ...代码块/循环体... } 理解: 表达式的结果必须是boolean类型 true -- 执行代码块 false - 跳出循环 死循环: while(true){ System.out.println("死循环"); }
案例:我有个梦想,每月存3000,每年递增1000元,多少个月后存满20万
double allMoney = 0;//总金额
double money = 3000;//当月应存的钱数
int month = 0;//记录月数
while(allMoney <= 200000){
month++;
allMoney += money;
if(month % 12 == 0){
money += 1000;
}
}
System.out.println(month + "个月后存满20万");
System.out.println(money);
do-while循环
语法结构: do{ ...代码块/循环体... }while(表达式); 理解: 表达式的结果必须是boolean类型 true -- 执行代码块 false - 跳出循环 执行顺序: 先执行一遍,再去判断表达式的结果 死循环: do{ System.out.println("死循环"); }while(true);
案例:小红参加学校组织的歌咏比赛,大赛在即,
老师建议:先彩排一次,如果很令人满意,以后就不用彩排了,
否则每天都排,直到现场表现满意为止!
Scanner scan = new Scanner(System.in);
String str;
do{
System.out.println("小红 - 唱歌~~~");
System.out.println("小红说:\"老师,您满意了吗?\"");
str = scan.next();
}while(str.equals("不满意"));
特殊的流程控制语句
1.break
含义:作用在循环中,表示跳出整个循环语句
做实验:
while(true){
System.out.println("111");
System.out.println("222");
if(true){
break;
}
System.out.println("333");
System.out.println("444");
}
案例:循环录入小明同学5门课的成绩并计算平均分,
如果某分数录入为负,停止录入并提示。
Scanner scan = new Scanner(System.in);
boolean flag = true;//true-正常录入,false-非正常录入
double sum = 0;
for(int i = 1;i<=5;i++){
System.out.println("请输入第" + i + "门成绩:");
double score = scan.nextDouble();
if(score<0){
flag = false;
break;
}
sum += score;
}
if(flag){
double avg = sum/5;
System.out.println("平均分为:" + avg);
}else{
System.out.println("分数为负数,停止录入...");
}
2.continue
含义:作用在循环中,表示跳过循环体剩余的部分,进入到下一次循环
做实验:
while(true){
System.out.println("111");
System.out.println("222");
if(true){
continue;
}
System.out.println("333");
System.out.println("444");
}
案例:循环录入Java课5名学生的成绩,统计分数大于等于80分的学生比例。
Scanner scan = new Scanner(System.in);
int num = 0;//大于等于80分学生的人数
for(int i = 1;i<=5;i++){
System.out.println("请输入第" + i + "名学生的成绩:");
double score = scan.nextDouble();
if(score < 80){
continue;
}
num++;
}
System.out.println("大于等于80分学生的比例:" + (num/5.0*100) + "%");
3.return
含义:作用在方法中,表示结束当前方法
System.out.println("111");
System.out.println("222");
if(true){
return;
}
System.out.println("333");
System.out.println("444");
4.lable
含义:给循环做标记(给循环取名字)
面试题:以下代码是否会报错
http://www.baidu.com
for(int i = 0;i<5;i++){
System.out.println("Hello World");
}
需求:嵌套for循环,外层循环5次,内层循环3次,
当外层循环到第4次时在内层循环中结束掉外层循环
a:for(int i = 1;i<=5;i++){
for(int j = 1;j<=3;j++){
if(i == 4){//当外层循环到第4次时在内层循环中结束掉外层循环
break a;
}
System.out.println(i + " -- " + j);
}
}