- 循环结构
- while 循环
while(布尔表达式){
//循环内容
}
举例:计算1-100的和
package com.yuan.struct;
public class whileDemo02 {
public static void main(String[] args) {
int i = 0;
int sum = 0;
while (i < 100) {
i++;
sum = sum + i;
System.out.println("now results is:" + sum);
}
}
}
- do…while循环
do…while 循环至少会执行一次
while 和do-while的区别:
while 先判断后执行,dowhile先执行后判断
do-while总是保证循环体会被至少执行一次。
(满足条件就全部执行,不满足条件就至少执行一次)
do{
//代码语句
}while(布尔表达式);
- for循环
- for循环是支持迭代的一种通用结构。
- for循环的执行次数是菜执行前就确定的格式如下 :
for(初始化;布尔表达式;更新){
//代码语句
}
举例
练习1:计算0-100之间的奇数和偶数的和
package com.yuan.struct;
public class forDemo01 {
public static void main(String[] args) {
int oddSum = 0;
int evenSum = 0;
for (int i = 0; i <= 100; i++) {
if (i % 2 != 0) {
oddSum += i;
} else {
evenSum += i;
}
}
System.out.println("奇数输出的结果为:" + oddSum);
System.out.println("偶数输出的结果为:" + evenSum);
}
}
练习2://用for循环输出1-1000之间能被5整除的数,并且每行输出3个
package com.yuan.struct;
public class forDemo02 {
public static void main(String[] args) {
//用for循环输出1-1000之间能被5整除的数,并且每行输出3个
for (int i = 0; i <= 1000; i++) {
if (i % 5 == 0) {
System.out.print(i);
System.out.print("\t");
}
if (i % 15 == 10) {
System.out.print("\n");
}
}
//println输出完全换行
//print 输出完不会换行
}
}
练习3:输出九九乘法表
package com.yuan.struct;
/**
* @author YMG
* @date 2022/7/2
*/
public class forDemo03 {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int i1 = 1; i1 <= i; i1++) {
System.out.print(i1 + "*" + i + "=" + i1 * i + "\t");
System.out.print("\t");
}
System.out.print("\n");
}
}
}
在实际的数据计算中“\t”,“\n”,等符号可以与前面的输出语句合并,这样可以节省计算时间
举例:
package com.yuan.struct;
public class forDemo03Speed {
public static void main(String[] args) {
long startTime = System.currentTimeMillis(); //获取开始时间
//要测的程序或方法
for (int i = 1; i <= 100; i++) {
for (int i1 = 1; i1 <= i; i1++) {
System.out.print(i1 + "*" + i + "=" + i1 * i + "\t");
// System.out.print("\t");两行的System.out.print()需要更多的计算资源和计算时间。
}
System.out.print("\n");
}
long endTime = System.currentTimeMillis(); //获取结束时间
System.out.println("程序运行时间: " + (endTime - startTime) + "ms");
}
}
- 增强型for循环
- 主要是在数组和集合的遍历中使用
- 增强for循环的语法格式为:
for (声明语句:表达式) { //代码句子 }
- 声明新的局部变量,改变变量的类型必须和数组元素的类型匹配,
- 作用域限定在循环语句快,其值与此时数组元素的值相等。
- 表达式:表达式是要访问的数组名,或者是返回值为数组的方法
举例:实际用法类似于Python中的for i in list1:
package com.yuan.struct;
public class forDemo04 {
public static void main(String[] args) {
int[] numbers={10,20,30,40,50};//定义数组
for (int x:numbers){
System.out.println(x);
}
}
}
- break & continue
break使用是跳出循环,循环外的语句还会继续执行
continue只是跳过循环中的剩下语句,会继续下一轮循环
举例:
package com.yuan.struct;
//break 的换行使用
public class BreakDemo01 {
public static void main(String[] args) {
int i=0;
while (i<100){
i++;
System.out.println(i);
if (i==30){
break;
}
System.out.println("===========");
}
System.out.println("----------------");
}
}
举例:
package com.yuan.struct;
public class ContinueDemo01 {
public static void main(String[] args) {
int i=0;
while (i<100){
i++;
if (i%10==0){
System.out.print(" ");
continue;
}
System.out.print(i);
}
}
}