一、为什么使用多重循环
输出5*5星型矩阵
public class Demo4 {
public static void main(String[] args) {
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
System.out.print("*");
}
System.out.println();
}
}
}
输出等腰三角形
public class Demo4 {
public static void main(String[] args) {
//外层循环,目的是输出每行内容,起到换行的作用
for (int i = 0; i < 6; i++) {
//内层循环1.输出每行最左面的直角三角形空白,防止输出成*直角三角形
for (int j = 0; j < (6 - i); j++) {
System.out.print(" ");
}
//内层循环2.输出三角形左面部分,目前没想到左面可以直接输出整个三角形
for (int a = 0; a < i + 1; a++) {
System.out.print("*");
}
//内层循环3.输出三角形的右面部分
for (int b = 0; b < i; b++) {
System.out.print("*");
}
System.out.println();
}
}
}
一个循环体又包含另一个完整的循环结构
例:
while(循环条件1){
//循环操作1
while(循环条件2){
//循环操作2
}
}
多重循环的使用:
注意:
1.各循环可互相嵌套
2.一般不超过三层
3.外层循环变量变化一次,内层循环变量要变化一遍
例题:
输出九九乘法表:
public class Demo4 {
public static void main(String[] args) {
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(i+"*"+j+"="+i*j+"\t");
}
System.out.println();
}
}
}
描述4000米长跑比赛
for (int i = 0; i<10; i++) {
//跑4000米;
if ( 不能坚持 ) {
break; //退出比赛
}
}
例题:
循环录入某学生5门课的成绩并计算平均分,如果某分数录入为负,停止录入并提示录入错误
import java.util.Scanner;
public class Demo4 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("输入学生姓名:");
String name = input.next();
for(int i=1;i<6;i++){
System.out.println("请输入第"+i+"门课的成绩:");
int num = input.nextInt();
if(num<0){
System.out.println("抱歉,分数录入错误,请重新进行录入");
break;
}
}
}
}
1~10之间的整数相加,得到累加值大于20的当前数
public class Demo4 {
public static void main(String[] args) {
int sum = 0;
for(int i=1;i<=10;i++){
sum+=i;
if(sum>20){
System.out.println("累加值大于20了,累加值为:"+sum);
break;
}
}
}
}
例题:
循环录入Java课的学生成绩,统计分数大于等于80分的学生比例
import java.util.Scanner;
public class Demo4 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("输入班级总人数:");
int num = input.nextInt();
int num1 = 0;
for(int i=1;i<=num;i++){
System.out.println("请输入第"+i+"位学生的成绩:");
int score = input.nextInt();
if(score>=80){
num1++;
}
}
System.out.println("80分以上的学生人数是:"+num1);
System.out.println("80分以上的学生所占的比例为:"+(double)num1/num*100+"%");
}
}
continue:只能用在循环里
continue作用:跳过循环体中剩余的语句而执行下一次循环
while(…) {
……
……
continue;//通常与条件语句一起执行,加速循环。
……
……
}
求1~10之间的所有偶数和
public class Demo4 {
public static void main(String[] args) {
int sum = 0;
for(int i=0;i<=10;i++){
if(i%2!=0){ //判断是否为奇数,是,则跳过本次循环
continue;
}
sum+=i;
}
System.out.println("1~10之间偶数的和为:"+sum);
}
}
一、使用场合
break常用于switch结构和循环结构中
continue一般用于循环结构中
二、作用
break语句终止某个循环,程序跳转到循环块外的下一条语句
continue跳出本次循环,进入下一次循环
双重循环亦是如此
return:结束当前方法的执行并退出,返回到调用该方法的语句处(涉及返回值)
顺序输出1~5这5个数字
int i = 1;
System.out.println("程序调试演示,注意观察i的值:");
while(i < 5){
System.out.println(i);
i++;
}
打印数列
使用循环输出 100、95、90、85…5
public class Demo4 {
public static void main(String[] args) {
for (int i = 100; i > 0; i--) {
if (i % 5 != 0) {
continue;
}
System.out.println(i);
}
}
}
public class Demo4 {
public static void main(String[] args) {
int i = 100;
while (i > 0) {
if (i % 5 != 0) {
i--;
continue;
}
System.out.println(i);
i--;
}
}
}
public class Demo4 {
public static void main(String[] args) {
int i = 100;
do {
if (i % 5 != 0) {
i--;
continue;
}
System.out.println(i);
i--;
} while (i > 0);
}
}
输出星期数
从键盘输入一位整数,当输入1~ 7时,输出“星期一”~“星期日”
输入其他数字时,提示用户重新输入
import java.util.Scanner;
public class Demo4 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while (true) {
System.out.println("请输入一个1~7之间的数字,输入0退出程序:");
int num = input.nextInt();
switch (num) {
case 1:
System.out.println("星期一\n");
break;
case 2:
System.out.println("星期二\n");
break;
case 3:
System.out.println("星期三\n");
break;
case 4:
System.out.println("星期四\n");
break;
case 5:
System.out.println("星期五\n");
break;
case 6:
System.out.println("星期六\n");
break;
case 7:
System.out.println("星期日\n");
break;
case 0:
System.out.println("程序结束");
break;
default:
System.out.println("您输入的数字不合格,只能输入1~7之间的数字\n");
break;
}
if(num==0){
break;
}
}
}
}