1 跳转控制
1.1 break 的使用
class BreakDemo
{
public static void main(String[] args)
{
// 查找1--100之间的整数中,第一个能被23整除的数
for( int i = 1 ; i <= 100; i++){
if(i % 23 == 0){
System.out.println(i);
break; //终止当前循环,后续的循环都将不再执行
}
}
}
}
运行结果:
23
我们接下来将break注释掉,即:
class BreakDemo
{
public static void main(String[] args)
{
// 查找1--100之间的整数中 第一个能被23整除的数
for( int i = 1 ; i <= 100; i++){
if(i % 23 == 0){
System.out.println(i);
//break; //终止当前循环,后续的循环都将不再执行
}
}
}
}
运行结果:
23
46
69
92
结果可见,所得的为0~100中能被23整除的数
1.2 continue 的使用
class BreakDemo
{
public static void main(String[] args)
{
// 查找1--5之间的整数中 第一个能被3整除的数
for( int i = 1 ; i <= 5; i++){
if(i % 3 == 0){
continue ; //结束本次循环,继续下次循环
//再break和continue紧挨后边,不能由语句 因为执行不到
//System.out.println(i);
}
System.out.println(i);
}
}
}
运行结果:
1
2
4
5
将System.out.println(i);前的注释去掉,因为continue;已经结束了本次循环,因此无法访问到。
当没有其他的控制的时候,break和continue只能控制离他最近的循环。
2 二分查找法
这个是在数组后面的知识
2.1 实现
public class test{
public static void main(String[] args) {
int[] arr = {1,2,5,6,8,10,15,17,19};
int key = 9;
boolean a = search(arr , key);
System.out.println(a);
}
public static boolean search(int[] arr , int key){
int start = 0;// 开始查找的位置
int end = arr.length -1;// 查找的结束位置
while( start < end ){
int mid = (start + end) / 2;
if(key == arr[mid]){
System.out.println("查找到了目标元素");
return true;
}else if (key < arr[mid] ){
end = mid - 1; //注意这里
}else if(key > arr[mid] ){//
start = mid + 1;
}
}
return false;
}
}
运行结果:
int key = 9;
false
int key = 8;
查找到了目标元素
true