break关键字 直接结束当前循环,如果在内层循环中,只跳出内层循环,还会执行外层
cotinue关键字 结束本次循环其后的代码不再执行,继续进行下一次循环
注意 1.continue与break之后都不可以直接写代码,写了也执行不了
2.switch与for循环中都存在beak,当在for循环中嵌套switch时switch如果执行break,并不会终止外层的for循环
3.当for循环中嵌套switch时,for循环中如果执行了break并不会阻止switch穿透
4.for循环中除break可以结束循环外,retuen也可以结束for循环
5.switch中除了break可以阻止穿透外,return也可以阻止穿透
具体代码示例
示例一
package cn.tude.csdn;
public class TestBreakAndContinue {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
System.out.println("我是break之前的代码");
if(i==2) {
continue;
System.out.println("我是continue之后的代码");
}
}
}
}
运行结果
测试结果可知break或continue之后书写代码,会导致编译时异常,编译不通过
异常信息 java.lang.Error: Unresolved compilation problem: Unreachable code
示例二
package cn.tude.csdn;
import java.util.*;
/*
* 本类用来测试for循环中嵌套switch与break关系
*/
public class TestSwitchAndFor {
public static void main(String[] args) {
for(;;) {System.out.println("请输入您要进行的操作");
System.out.println("1.加");
System.out.println("2.减");
System.out.println("3.乘");
System.out.println("4.除");
System.out.println("5.退出");
int a=new Scanner(System.in).nextInt();
if(a==5) {
break;
}
switch(a) {
case 1:add();break;
case 2:reduce();break;
case 3:ride();break;
case 4:except();break;
}
}
}
//除法
private static void except() {
// TODO Auto-generated method stub
int[] num = getNum();
System.out.println(num[0]/num[1]);
}
//乘法
private static void ride() {
// TODO Auto-generated method stub
int[] num = getNum();
System.out.println(num[0]*num[1]);
}
//减法
private static void reduce() {
// TODO Auto-generated method stub
int[] num = getNum();
System.out.println(num[0]-num[1]);
}
//加法
private static void add() {
// TODO Auto-generated method stub
int[] num = getNum();
System.out.println(num[0]+num[1]);
}
static int[] getNum() {
int a[]=new int[2];
System.out.println("请输入第一个数字");
int b=new Scanner(System.in).nextInt();
System.out.println("请输入第二个数字");
int c=new Scanner(System.in).nextInt();
a[0]=b;
a[1]=c;
return a;
}
}
运行结果
示例三
package cn.tude.csdn;
import java.lang.invoke.SwitchPoint;
/*
* switch for循环与break关系
* for循环中的break并未阻止switch中的
*/
public class TestForAndSwitchBreak {
public static void main(String[] args) {
int a=1;
switch(a){
case 1:System.out.println("我是case1");
for(;;){break;}
;
case 2:System.out.println("我是case2");
case 3:System.out.println("我是case3");
case 4:System.out.println("我是case4");
}
}
}
运行结果
示例 四
package cn.tude.csdn;
public class TestForAndReturn {
public static void main(String[] args) {
System.out.println(add());
}
public static int add() {
int j=0;
for(;;) {
j++;
if(j==10) {
return j;
}
}
}
}
运行结果
示例五
package cn.tude.csdn;
public class TestSwitchAndReturn {
public static void main(String[] args) {
System.out.println(test());
}
static int test() {
int a=1;
switch(a) {
case 1:return 1;
case 2:return 2;
case 3:return 4;
default:return 0;
}
}
}
运行结果
while :循环,先判断,后执行
while(条件){满足条件执行的循环体 }
do-while 循环,先执行一次,再判断,如果符合条件,开始第二轮循环,不符合,结束
do{ 循环体 }while(条件);
TIPS:我们可以设置死循环,一定注意:死循环一定要设置出口
=======================================
数组
数组是用来存放多个相同类型的值的结构
数组需要开辟连续的内存空间,数组定义时,需要明确数组类型和长度
数组名保存的是数组是数组的地址值,是一个引用类型变量!!!!!!
数组的定义方式有两类:
1)静态创建--知道具体的元素值
2)动态长度--知道长度,后续需要动态的赋值
除了char类型的数组以外,其他类型的数组需要使用数组工具类Arrays的toString()
测试
package cn.tude.basic;
import java.util.Scanner;
/*
* 本来用来测试break和continue
* 需求找数字88
*/
public class TestBreakAndContinue {
public static void main(String[] args) {
for(int i=0;i<101;i++) {
System.out.println("请输入您想猜的数字");
int input = new Scanner(System.in).nextInt();
if(input!=88) {
if(input>88){
System.out.println("猜大了");
}
continue;
}
/*
* 注意:不管是加不加continue,都可以在猜不对的情况下继续输入
* 只不过是在加了continue之后,就不执行本轮循环中continue后面的代码,直接进行下一轮猜数字即可,代码执行效率更高
*/
if(input==88) {
System.out.println("恭喜您猜对了");
break;
}
}
}
}
结果
测试
package cn.tude.basic;
import java.util.Random;
import java.util.Scanner;
//本类用来练习while循环与do while循环
/*
* 产生一个随机数,和用户一直输入得数作比较,直到用户猜对
*/
public class TestWhile_doWhile {
public static void main(String[] args) {
//调用生成随机数的方法
/* int r = creatNum(); */
int r=creayNum();
/* System.out.println("生成的随机数为"+r); */
/* guessNumber(r); *///使用while循环猜数字
guessNumber1(r);
}
private static void guessNumber1(int r) {
// TODO Auto-generated method stub
do {
System.out.println("猜猜看");
int nextInt = new Scanner(System.in).nextInt();
if(r!=nextInt) {
if (nextInt>r) {
System.out.println("猜大了");
System.out.println();
}else if(nextInt<r){
System.out.println("猜小了");
System.out.println();
}
}else {
System.out.println("猜对了");
break;
}
}while(true);
}
private static void guessNumber(int r) {
// TODO Auto-generated method stub
while(true) {/* 设置死循环以后应该设置程序的出口*/
System.out.println("猜猜看");
int nextInt = new Scanner(System.in).nextInt();
if(r!=nextInt) {
if (nextInt>r) {
System.out.println("猜大了");
System.out.println();
}else if(nextInt<r){
System.out.println("猜小了");
System.out.println();
}
}else {
System.out.println("猜对了");
break;
}
}
}
private static int creatNum() {
// TODO Auto-generated method stub
int random = new Random().nextInt(100);//这个参数是自定义的,此时生成随机数的范围是[0-100)
return random;
}
/*
* 使用for循环无限制随机生成 if判断生成的随机数是否符合范围
* 符合范围return
*/
private static int creayNum() {
for(;;) {
int i = new Random().nextInt();
if(i>=0&&i<=100) {
return i;
}
}
}
}
测试结果
测试
package cn.tude.basic;
import java.util.Iterator;
/*
* 利用for循环打印左直角三角形
*/
public class TestForTriangle {
//程序入口main方法
public static void main(String[] args) {
a();
b();
c();
}
/*
* 打印菱形
*/
private static void c() {
// TODO Auto-generated method stub
for (int i = 1; i < 5; i++) {
for (int j = 0; j <5-i; j++) {
System.out.print(" ");
}
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
for (int q = 1; q < i; q++) {
System.out.print("*");
}
System.out.println();
}
for (int i = 1; i < 5; i++) {
for (int j = 1; j <=i; j++) {
System.out.print(" ");
}
for (int j = 1; j < 5-i; j++) {
System.out.print("*");
}
for (int j = 0; j < 5-i; j++) {
System.out.print("*");
}
System.out.println();
}
}
/*
* 打印六行六列正方形
*/
private static void a() {
// TODO Auto-generated method stub
for (int i = 0; i < 6;i++) {
for (int j = 0; j < 6; j++) {
System.out.print("*");
}
System.out.println();
}
}
/*
* 打印左直角三角形
*
*/
public static void b() {
for(int i=1;i<5;i++) {
for(int j=1;j<=i;j++) {
System.out.print("*");
}
System.out.println();
}
}
}
运行结果
测试
package cn.tude.basic;
/*
* 九九乘法表
*/
public class TestFor99Excel {
public static void main(String[] args) {
for (int i = 1; i < 10; i++) {
for (int j = 1; j <=i; j++) {
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println();
}
}
}
测试结果
数组
测试
package cn.tude.arrary;
import java.util.Arrays;
/*
* 本类用来测试数组的创建
*/
/*1.char类型底层做了处理,可以直接打印数组中的内容,
* 除了char类型以外的其他类型的数组想要查看具体的元素需要使用工具类
* 2.Arrars里面的toString(数组名)方法;
* 注意 Arrays是java中的工具类使用时需要导包
*
*/
public class TestCreateArray {
public static void main(String[] args) {
/*3184826557
* //动态存储 int[] a= new int[5]; //静态存储 int []b=new int[] {1,2,3,4,5}; int []c=
* {1,2,3,4,5,6,7};
*/
//静态创建已经知道数组的具体元素
//char b1[]= {96,96};b1中存放的得得是地址值打印b1为什么是地址值???重写了toString方法
char a[]= {'h','e','l','l','o'};
char b[]= new char[]{'h','e','l','l','o'};
char []c=new char[5];
/*
* 通过数组下标来操纵数组中的元素,最大下标为数组长度减一,数组下标从0开始
*
*/
c[0]='h';
c[1]='e';
c[2]='l';
c[3]='l';
c[4]='o';
System.out.println(a);
System.out.println(b);
System.out.println(c);
String arr[]= {"h","e","l","l","o"};
System.out.println(arr);
System.out.println(Arrays.toString(arr));
System.out.println("数组a的长度为"+a.length);
System.out.println("数组arr的长度为"+arr.length);
}
}
测试结果
测试
package cn.tude.arrary;
/*
* 本类用于练习数组的遍历
*/
public class TestArrayExec {
public static void main(String[] args) {
int a[]={31,28,31,30,31,30,31,31,30,31,30,31};
for(int i=0;i<a.length;i++) {
System.out.println(i+1+"月有"+a[i]+"天");
}
}
}
运行结果
测试
package cn.tude.arrary;
import java.util.Arrays;
public class TestArray2 {
public static void main(String[] args) {
int a[] = new int[10];
/*
* 我们通过数组的下标曹总数组的元素
*/
for (int i = 0; i < a.length; i++) {
a[i] = i + 1;
System.out.println(a[i]);
Arrays.toString(a);
}
}
}
测试结果
package cn.tude.arrary;
import java.util.Arrays;
/*
* 本类用来测试数组的工具类Arrays
*/
public class TestArrar3 {
public static void main(String[] args) {
int a[]= {21,34,1,3,67,34,123,3564};
Arrays.sort(a);
System.out.println(Arrays.toString(a));
int b[]=new int [] {12,23,34,12,23,34,4,5};
int[] copyOf = Arrays.copyOf(b, 3);
System.out.println(Arrays.toString(copyOf));
}
}
测试结果