break continue 关键字 while和do while循环一维数组Day05

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));
		
	}

}

测试结果

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ᥬ᭄?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值