循环语句
while(){
}
1 import java.util.Scanner; // 导入外部程序Scanner 2 3 public class xunhuan { // 主类 4 public static void main(String[] args) { // 主方法 5 Scanner sc = new Scanner(System.in); // 创建扫描器对象sc 6 int N; // 定义一个int型变量N N = sc.nextInt(); // 键盘输入变量N的值 7 int n = 1, sum = 0; // 定义循环变量n(初始值为1), 8 // 定义保存累加结果的变量sum(初始值为0) 9 while (n <= N) { // 用小括号将循环条件n<=N括起来 10 sum += 2 * n - 1; // 将当前项的值2n-1累加到sum上 11 n++; // 将n加1,准备下一次累加。该语句使得循环条件n<=N趋向于false 12 // 执行完循环体最后一条语句之后,转到第11行,重新判断循环条件 13 } 14 // 如果循环条件不成立,则循环结束,继续执行while语句的下一条语句 15 System.out.println(sum); // 显示变量sum的值,即前N项的累加和 16 } 17 }
do{
}while()
1 import java.util.Scanner; // 导入外部程序Scanner 2 3 public class xunhuan { // 主类 4 public static void main(String[] args) { // 主方法 5 Scanner sc = new Scanner(System.in); // 创建扫描器对象sc 6 int N; // 定义一个int型变量N N = sc.nextInt(); // 键盘输入变量N的值 7 int n = 1, sum = 0; // 定义循环变量n(初始值为1), 8 // 定义保存累加结果的变量sum(初始值为0) 9 do { // 先执行循环体 10 sum += 2 * n - 1; // 将当前项的值2n-1累加到sum上 11 n++; // 将n加1,准备下一次累加 12 } while (n <= N); // 从1到n在里面循环,n+1后不执行;后判断条件。如条件成立则重复执行循环体,否则结束循环 13 // 循环结束后,继续执行do-while语句的下一条语句 14 System.out.println(sum); // 显示变量sum的值,即前N项的累加和 15 } 16 }
for (表达式1; 表达式2; 表达式3)
{语句
}
1 import java.util.Scanner; // 导入外部程序Scanner 2 3 public class xunhuan { // 主类 4 public static void main(String[] args) { // 主方法 5 Scanner sc = new Scanner(System.in); // 创建扫描器对象sc 6 int N; // 定义一个int型变量N N = sc.nextInt(); // 键盘输入变量N的值 7 int n, sum = 0; // 定义循环变量n 8 // 定义保存累加结果的变量sum(初始值为0) 9 for (n = 1; n <= N; n++) { // for语句集中用3个表达式指定n的初始值1、循环条件n<=N 10 // 以及修改循环变量n++,使循环条件趋向于false 11 sum += 2 * n - 1; // 循环体被简化了,原来的n++语句被放入到for语句里面 12 } // 循环体只有一条语句,此时这对大括号可以省略 13 System.out.println(sum); // 显示变量sum的值,即前N项的累加和 14 } 15 }
其中还有break;结束整个循环和continue;结束当前一个循环
带编号,可以跳到指定循环
1 public class xunhuan { // 主类 2 public static void main(String[] args) { // 主方法 3 int i, j, n = 0; 4 Loop1: for (i = 100; i <= 200; i += 2) { // 外层循环,语句块标号Loop1 5 Loop2: for (j = 2; j <= i / 2; j++) { // 内层循环,语句块标号Loop2 6 if (i % j == 0) // 不是质数,则中途返回 7 continue Loop1; // 借助标号Loop1,直接返回外层循环 8 } 9 System.out.print(" " + i); // 是质数:显示质数,以空格隔开 10 n++; // 统计显示的指数个数,一行显示10个 11 if (n < 10) // 未满10个,则不换行 12 continue; // 中途返回。无标号时直接返回本层循环,此处也为外 13 System.out.println(); 14 n = 0;// 换行显示,并将计数清零 15 } 16 } 17 }
多重循环应用实例:生成乘法表的Java程序
1 public class xunhuan { // 主类 2 public static void main(String[] args) { // 主方法 3 int x, y; // 定义两个循环变量x和y 4 for (x = 1; x <= 9; x++) { // 第一重循环,x从1到9,共9行 5 for (y = 1; y <= x; y++) // 第二重循环,y从1到x。第x行有x个乘法 6 System.out.print(y + "×" + x + "=" + (x * y) + " "); 7 System.out.print('\n'); // 换一行,再显示后续的内容 8 } 9 } 10 }