java循环嵌套与跳转语句(break,continue)
一 循环嵌套
嵌套循环是指在一个循环语句的循环体中再定义一个循环语句的语法结构。while、do…while、
for循环语句都可以进行嵌套,并且它们之间也可以互相嵌套,如最常见的在for循环中嵌套for循环。
格式:
for(初始化表达式; 循环条件; 操作表达式) {
………
for(初始化表达式; 循环条件; 操作表达式) {
执行语句
………
}
………
}
例如:用“*”打印直角三角形
1public class ForForDemo {
2 public static void main(String[] args) {
3 int i, j; // 定义两个循环变量
4 for (i = 1; i <= 9; i++) { // 外层循环
5 for (j = 1; j <= i; j++) { // 内层循环
6 System.out.print("*"); // 打印*
7 }
8 System.out.print("\n"); // 换行
9 }
10 }
11}
第一步,在第3行代码定义了两个循环变量i和j,其中i为外层循环变量,j为内层循环变量。
第二步,在第4行代码将i初始化为1,条件i <= 9为true,首次进入外层循环的循环体。
第三步,在第5行代码将j初始化为1,由于此时i的值为1,条件j <= i为true,首次进入内层循环的循环体,打印一个“*”。
第四步,执行第5行代码中内层循环的操作表达式j++,将j的值自增为2。
第五步,执行第5行代码中的判断条件j<=i,判断结果为false,内层循环结束。执行后面的代码,打印换行符。
第六步,执行第4行代码中外层循环的操作表达式i++,将i的值自增为2。
第七步,执行第4行代码中的判断条件i<=9,判断结果为true,进入外层循环的循环体,继续执行内层循环。
第八步,由于i的值为2,内层循环会执行两次,即在第2行打印两个“*”。在内层循环结束时会打印换行符。
第九步,以此类推,在第3行会打印3个“*”,逐行递增,直到i的值为10时,外层循环的判断条件i <= 9结果为false,外层循环结束,整个程序也就结束了。
例如:用“*”打印等腰角三角形
public class ForForDemo {
public static void main(String[] args) {
System.out.println("请输入等腰三角形行数:");
int s2 = sc.nextInt();
for (int i=1;i<=s2 ;i++ ){
for (int j =1;j<=s2-i ;j++ ){
System.out.print(" ");
}
for (int k = 1;k<=2*i-1 ;k++ )
{System.out.print("*");
}
System.out.print("\n");
}
}
}
例如:打印99乘法表
public class ForForDemo {
public static void main(String[] args) {
for (int i = 1;i<=9 ;i++ ){
for (int j=1;j<=i ;j++ ){
System.out.print(j+"×"+i+"="+i*j+" ");
}
System.out.print("\n");
}
}
}
例如:用“*”打印倒直角三角形
public class ForForDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入三角形行数:");
int s = sc.nextInt();
for (int i = 1;i<=s ;i++ ){
for (int j=s;j>=i ;j-- ){
System.out.print("*");
}
System.out.print("\n");
}
}
}
二 跳转语句(break,continue)与标记
跳转语句用于实现循环执行过程中程序流程的跳转,在Java中的跳转语句有break语句和continue语句。
1.break
在switch条件语句和循环语句中都可以使用break语句。当它出现在switch条件语句中时,作用是终止某个case
并跳出switch结构。当它出现在循环语句中,作用是跳出循环语句,执行后面的代码。
例如:
public class BreakDemo {
public static void main(String[] args) {
int x = 1; // 定义变量x,初始值为1
while (x <= 4) { // 循环条件
System.out.println("x = " + x); // 条件成立,打印x的值
if (x == 3) {
break;
}
x++; // x进行自增
}
}
}
2.标记
当break语句出现在嵌套循环中的内层循环时,它只能跳出内层循环,如果想使用break语句跳
出外层循环则需要对外层循环添加标记。
例如:
public class BreakDemo02 {
public static void main(String[] args) {
int i, j; // 定义两个循环变量
aaa: for (i = 1; i <= 9; i++) { // 外层循环
for (j = 1; j <= i; j++) { // 内层循环
if (i > 4) { // 判断i的值是否大于4
break aaa; // 跳出外层循环
}
System.out.print("*"); // 打印*
}
System.out.print("\n"); // 换行
}
}
}
3.continue
continue语句用在循环语句中,它的作用是终止本次循环,执行下一次循环。
例如:
对1~100之内的奇数求和
public class ContinueDemo {
public static void main(String[] args) {
int sum = 0; // 定义变量sum,用于记住和
for (int i = 1; i <= 100; i++) {
if (i % 2 == 0) { // i是一个偶数,不累加
continue; // 结束本次循环
}
sum += i; // 实现sum和i的累加
}
System.out.println("sum = " + sum);
}
}
java循环嵌套与跳转语句(break,continue)的更多相关文章
- 04-01 Java switch、for、while、do while语句,循环嵌套,跳转语句break、continue、return
语句 1:switch语句(掌握) (1)格式: switch(表达式) { case 值1: 语句体1; break; case 值2: 语句体2; break; ... default: 语句体n ...
- 【2017-02-24】循环嵌套、跳转语句、异常语句、迭代穷举、while
一.循环嵌套 1.格式 for() { for() { } } 2.执行顺序 先执行外边循环进到循环体发现里面的循环,开始执行里面的循环.等到里面的循环执行完毕,再执行外边的循环. 在外面循环第一次, ...
- 【2-24】for循环嵌套,跳转语句,异常语句,穷举法、迭代法
For循环嵌套与if嵌套相似,是在for中再套for,其结构如下: For(;;) { For(;;){} }经典题型为打印星星例: Console.Write("请输入一个奇数:" ...
- 【2017-2-24】C#循环嵌套,跳转语句,迭代穷举,异常语句,while循环
循环嵌套 在一个循环体语句中包含另一个循环语句: 99乘法表 ; i <= ; i++) { ; j <= i; j++) { Console.Write(i+"x"+ ...
- 跳转语句—break,continue,goto
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>#include<stdlib.h&g ...
- 跳转语句Break、continue
跳转语句Break.continue 1.break -跳出 作用范围:switch或循环语句; -当break语句单独存在时,下面不需要定义其他语句,因为直接被跳出,不执行下面的语句. -break ...
- js中退出语句break,continue和return 比较
js中退出语句break,continue和return 比较 在 break,continue和return 三个关键字中, break,continue是一起的,return 是函数返回语句,但是 ...
- js中退出语句break,continue和return 比较(转)
原链接:http://blog.163.com/ued_er/blog/static/199703159201210283107315/ js中退出语句break,continue和return 比较 ...
- java控制语句 if-else while do-while for return break continue goto switch default
if for //: object/ForEachFloat.java package object; import java.util.Random; public class ForEachFlo ...
随机推荐
- [Qt2D绘图]-04绘制文字&&绘制路径
注:学习自<Qt Creator 快速入门>第三版. 文档中的示例参考 Qt Example推荐:Painter Paths Example和Vector Deformation ...
- RabbitMQ 入门之基础概念
什么是消息队列(MQ) 消息是在不同应用间传递的数据.这里的消息可以非常简单,比如只包含字符串,也可以非常复杂,包含多个嵌套的对象.消息队列(Message Queue)简单来说就是一种应用程序间的通 ...
- MSF查找提权exp
0x01:介绍 在拿到一个反弹shell后,下一步可以用metaspolit的内置模块Local Exploit SuggesterLocal-exploit-suggester的功能就如它的名字一样 ...
- ES6标准中的import和export
在ES6前, 前端使用RequireJS或者seaJS实现模块化, requireJS是基于AMD规范的模块化库, 而像seaJS是基于CMD规范的模块化库, 两者都是为了为了推广前端模块化的工具 ...
- java8之Stream流处理
简介 Stream 流处理,首先要澄清的是 java8 中的 Stream 与 I/O 流 InputStream 和 OutputStream 是完全不同的概念. Stream 机制是针对集合迭代器 ...
- Python 正则表达式简单了解
match 从字符串的开始匹配 如果开头不符合要求 就会报错 search 用字符串里的每一个元素 去匹配找的元素 1.匹配单个字符 \d 数字 \D 非数字 . 匹配任意字符 除了\n [] ...
- Java对象公约
灵魂static关键字 Java规定:方法只能由对象来调用. 换句话来说,在面向对象的思维下,方法与对象存在一种强耦合. static作用:即使没有初始化对象,也可以调用方法.(类比到属性上同样如此) ...
- Spring+hibernate无法执行更新操作
如果你幸运的使用springmvc+hibernate你应该检查以下springmvc的扫面范围是否是和spring framework的事务范围有冲突,虽然是公用容器,但是事务这块却不能公用的,sp ...
- 看完这一篇,再也不怕面试官问到IntentService的原理
IntentService是什么 在内部封装了 Handler.消息队列的一个Service子类,适合在后台执行一系列串行依次执行的耗时异步任务,方便了我们的日常coding(普通的Service则是 ...
- Python continue语句
Python continue语句: 当执行到 continue 语句时,将不再执行本次循环中 continue 语句接下来的部分,而是继续下一次循环. lst = [7,8,9,4,5,6] for ...