循环结构:重复执行某段代码片段
1.1.循环结构
1,while循环
/**
* 1,while循环
*/
public static void method1() {
/*
while循环 首先先判断条件表达式的结果 如果为true 则执行循环体;
然后再次判断条件表达式的结果 如果为true再次执行循环体 否则循环结束;
*/
//while有可能一次都不执行 当一次判断结果为false
//count是控制循环次数的变量
/* int count = 0;
while (count < 5) {
//循环体
System.out.println("hello world" + count);
count++;//count = count + 1;
}*/
int count = 5;
while (count > 0) {
System.out.println("hello world" + count);
count--;//等价于 count = count-1;
}
System.out.println("end");
}
练习
/**
* 动态录入班级人数和学员成绩,计算班级学员的平均成绩
*/
public static void exercise1() {
Scanner sc = new Scanner(System.in);
System.out.println("请录入班级人数 ");
int stuNum = sc.nextInt();
//控制循环次数的变量
int count = 1;
//sum 是总成绩的变量
double sum = 0;
while (count <= stuNum) {
System.out.println("请录入" + count + "个学生的成绩");
int score = sc.nextInt();
//double score = sc.nextDouble();
//累加
sum = sum + score;// sum += score;
//自增
count++;
}
System.out.println("sum: " + sum);
System.out.println("avg: " + (sum / stuNum));
}
-
do...while循环
-
是while循环的变体,区别在于至少执行一次
-
/**
* do...while循环
*/
public static void method2() {
int count = 0;
//第一次执行循环体的时候 不做判断 直接执行;do..while至少执行一次循环
do {
//循环体
System.out.println("hello " + count);
count++;
} while (count < 5);
}
练习题
public static void exercise4() {
int year = 2014;
double sale = 10;
do {
sale = sale * 1.45;
year++;
System.out.println("sale: " + sale);
System.out.println("year: " + year);
} while (sale < 100);
}
public static void exercise3() {
Scanner sc = new Scanner(System.in);
System.out.println("请录入班级人数 ");
int stuNum = sc.nextInt();
//控制循环次数的变量
int count = 1;
//sum 是总成绩的变量
double sum = 0;
do {
System.out.println("请录入" + count + "个学生的成绩");
int score = sc.nextInt();
//double score = sc.nextDouble();
//成绩进行累加
sum = sum + score;// sum += score;
//自增
count++;
} while (count <= stuNum);
System.out.println("sum: " + sum);
System.out.println("avg: " + (sum / stuNum));
}
变量的作用域问题
/**
* 变量作用域
*/
private static void method3() {
//变量的作用域:在哪些地方能访问一个变量
int num = 10;
System.out.println(num);
if (10 > 2) {
//只需要看这个变量声明所在的 花括号 不能出花括号
int score = 23;
System.out.println(score);
}
int count = 0;
int num2 = 0;
while (count < 5) {
num2 = 10;
}
System.out.println(num2);
System.out.println(num);
}
3,for循环
public static void method1() {
int count = 0;
while (count < 5) {
System.out.println("hello " + count);
count++;
}
/*
1, int i = 0 初始化语句 只执行一次
2, i < 5 条件判断语句 如果结果是true 执行循环体 否则 循环结束
3, i++ 自增语句执行完后;再次回到步骤2;
*/
for (int i = 0; i < 5; i++) {
System.out.println("hello " + i);
}
}
设递增步长
/**
* 递增步长自定义
*/
public static void method2() {
for (int i = 0; i < 5; i += 2) {
System.out.println("hello " + i);
}
}
练习
/**
* 1-100 所有偶数 的和
*/
public static void method3() {
int sum = 0;
//奇数
for (int i = 1; i <= 100; i += 2) {
sum += i;
}
//偶数
/* for (int i = 2; i <= 100; i += 2) {
sum += i;
}*/
/*for (int i = 2; i <= 100; i++) {
if (i % 2 == 0) {
sum = sum + i;//sum +=i;
}
}*/
System.out.println("sum: " + sum);
}
依次递减
/**
* 递减变化
*/
public static void method4() {
for (int i = 5; i > 0; i--) {
System.out.println("hello " + i);
}
}
变体写法
/**
* 2种死循环写法
*/
public static void method5() {
/*for (; ; ) {
System.out.println("hello");
}*/
for (int i = 0; ; i++) {
System.out.println("hello" + i);
}
}
练习
/**
* for:常用于循环次数可知
* while:常用于循环次数未知
*/
public static void exercise1() {
Scanner sc = new Scanner(System.in);
System.out.println("请录入班级人数 ");
int stuNum = sc.nextInt();
//sum 是总成绩的变量
double sum = 0;
for (int i = 1; i <= stuNum; i++) {
System.out.println("请录入" + i + "个学生的成绩");
int score = sc.nextInt();
//double score = sc.nextDouble();
//成绩进行累加
sum = sum + score;// sum += score;
}
System.out.println("sum: " + sum);
System.out.println("avg: " + (sum / stuNum));
}
循环嵌套
public static void method7() {
int i = 0;
while (i < 5) {
System.out.println("外层循环 " + i);
i++;
/*int j = 0;
while (j < 3) {
System.out.println(" 内层循环 " + j);
j++;
}*/
for (int j = 0; j < 3; j++) {
System.out.println(" 内层循环 " + j);
}
}
}
/**
* 循环嵌套
*/
private static void method6() {
for (int i = 0; i < 5; i++) {
System.out.println("外层循环 " + i);
for (int j = 0; j < 3; j++) {
System.out.println(" 内层循环 " + j);
}
}
}
练习
/**
* 打印出所有的 "水仙花数"
* 所谓 "水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
* 例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。
*/
public static void exercise2() {
// 100 - 999
for (int i = 100; i <= 999; i++) {
int bai = i / 100;
int shi = i / 10 % 10;
int ge = i % 10;
int sum = (int) (Math.pow(bai, 3) + Math.pow(shi, 3) + Math.pow(ge, 3));
if (sum == i) {
System.out.println(i + "是水仙花数");
}
}
}
1.2.2个关键字
1,break关键字
public static void method9() {
for (int i = 0; i < 5; i++) {
if (i == 2) {
// break 终止紧跟着的循环
break;
}
System.out.println("外层循环 " + i);
for (int j = 0; j < 3; j++) {
System.out.println(" 内层循环 " + j);
}
}
}
/**
* 1 break 一旦出现在循环体中,表示终止循环
*/
public static void method8() {
for (int i = 0; i < 10; i++) {
if (i == 3) {
// break一旦执行 直接终止break紧跟着的循环
break;
}
System.out.println("java " + i);
}
System.out.println("end");
}
2,continue关键字
/**
*
*/
public static void method11() {
for (int i = 0; i < 5; i++) {
if (i == 1) {
continue;
}
System.out.println("外层循环 " + i);
for (int j = 0; j < 3; j++) {
System.out.println(" 内层循环 " + j);
}
}
}
public static void method10() {
for (int i = 0; i < 10; i++) {
if (i == 3) {
// continue终止紧跟着的循环的 某一次循环;continue下面的代码不再执行
continue;
}
System.out.println("java " + i);
}
System.out.println("end");
}
Java编程基础:循环结构与控制流
本文详细介绍了Java中的循环结构(while、do...while、for),包括它们的语法、用法示例以及变量作用域。同时讨论了break和continue关键字在控制循环流程中的应用。
984

被折叠的 条评论
为什么被折叠?



