java基础之控制语句

Java 主要的控制语句有 3 种,选择语句、循环语句、跳转语句。
1.if判读语句
一周中,如果是周一到周五就要去上课或者上班,如果是周六或者周日就可以好好休息 一下了。在 Java 中,遇到这种情况就需要使用条件语句。条件语句是指根据程序运行时产生 的结果或者用户的输入条件执行相应的代码。在 Java 中有两种条件语句可以使用,分别是 if 条件语句和 switch 条件语句。
if 条件语句是最简单的条件语句,作为条件分支语句,它可以控制程序在两个不同的路 径中执行。if 语句的一般形式如下。
boolean判断
if(条件) { //语句块 1 } else { //语句块 2 }
多语句判断
if(条件) { //语句块 1 } else if { //语句块 2 }else{//语句块3}
嵌套if
if(条件) {if(条件2) { //语句块 1 } else { //语句块 2 } } else { //语句块 3 }
2.switch选择语句
上面的示例使用了 if-else 阶梯的形式进行多路分支语句的处理,但这样处理的过程太过 复杂,Java 提供了一种简单的形式,若用 switch 语句来处理会使过程非常简单,格式如下。
switch(表达式) {
value1: //程序语句 break;
case value2: //程序语句 break;
case value3: //程序语句 break;
case value4: //程序语句 break;
……
default: //程序语句
}
其中表达式必须是 byte、short、int 或者是 char 类型。在 case 后边的 value 值必须是跟表 达式类型一致的类型或者是可以兼容的类型,不能出现重复的 value 值。 switch 语句的执行过程是这样的,首先它计算表达式的值,然后根据值来匹配每个 case,找到匹配的话就执行该 case 的程序语句;如果没有匹配的 case 值,就执行 default 的语句块。 执行完该 case 的语句块后,使用 break 语句跳出 switch 语句,如果没有 break 语句的话, 程序会执行下一个 case 的语句块,直到碰到 break 语句为止。
3.循环语句
在程序语言中,循环语句是指需要重复执行的一组语句,直到遇到让循环终止的条件为 止。Java 中常用的循环有 3 种形式,for、while 和 do-while 循环。本节会对各种形式的循环 语句进行介绍。
3.1 while 循环语句
各个循环语句之间的区别是不大的,但是也有本质的区别。先来看一下 while 循环语句, while 循环语句是 Java 最基本的循环语句,格式如下。
while(条件) { //循环体 }
当条件为真的时候会一直执行循环体的内容,直到条件的值为假为止。其中条件可以是 boolean 值、boolean 变量、表达式,也可以是一个能获得布尔类型结果的方法。如果条件为 假,则会跳过循环体执行下面的语句。
3.2 do-while 循环语句
while 语句虽然可以很好地进行循环操作,但它也是有缺陷的。如果控制 while 循环的条 件为假的话,循环体就不会执行循环体的内容,但是有时候需要循环体至少执行一次,即使 表达式为假的话也执行,这时就需要在循环末尾给出测试条件。Java 提供了另一种形式的循 环,do-while 循环,它的一般格式如下。
do { //循环体 } while(条件)
do-while 循环首先会执行循环体,然后计算条件,如果该条件为真的话就继续执行循 环体,否则就终止循环。
3.3 for 循环语句
有时在使用 while 循环和 do-while 循环时会感觉到其功能不够强大。Java 中还提供了 for 循环来增强循环语句的功能。for 循环的一般格式如下。
for(初始化;条件;迭代运算) { //循环体 }
当执行 for 循环,第一次先执行循环的初始化,通过它设置循环控制变量值,接下来计 算条件,条件必须是一个布尔表达式,如果为真的话,就继续执行循环,否则跳出循环。然 后执行的是迭代运算,通常情况下迭代运算是一个表达式,可以增加或者减小循环控制变量。 最后再根据计算结果判断是否执行循环体,如此往复直到条件为假为止。
在 Java 中支持使用多个变量来控制 循环的执行,各个变量之间通过逗号隔开,可通过下面的程序来理解这种形式。
、 for(int n=20,i=0;i<n;i++,n--){}
for 循环的使用是很灵活的,因为它由 3 部分控制,初始化部分、条件测试和迭代运算, 使用起来都是很灵活的。
boolean b=true;
System.out.println("循环1");
for(int i=0;b;i++) //循环条件一直为 true {
if(i==5) //当 i 的值为 5 时
b=false; //改变循环条件为 false
System.out.println("i="+i);
}
int i=0;
b=true;
System.out.println("循环2");
for(;b;) //没有起始条件 {
System.out.println("i="+i);
if(i==5) b=false;
i++;
}
System.out.println("循环3");
for(;;) //没有任何条件的 for 循环 { }
第一个循环中把一个 boolean 类型的变量作为其条件表达式。第二个循环把循环控制变 量的声明放在外部,把循环迭代的语句放在了程序循环体中。第三个循环语句是空的,只有 格式没有任何内容,实际上它是一个死循环,程序进入它会永远执行循环无法跳出来,直到 强行终止程序,该程序才能结束。

4.跳转语句
4.1 break 跳出语句
break 语句主要有三种用途。第一,它可以用于跳出 switch 语句,前面的 switch 语句已 经使用了该语句。第二,break 语句可以用于跳出循环。第三,可以用于大语句块的跳出。
1.跳出循环
使用 break 语句,可以强行终止循环,即使在循环条件仍然满足的情况下也要跳出循环。 使用 break 语句跳出循环后,循环被终止,并从循环后下一句处继续执行程序。下面是一个 简单的例子。
for(int i=0;i<50;i++) {
System.out.println("i="+i); //当 n 等于 10 的时候,跳出循环语句
if(i==10) break; }
本来循环应该执行 50 次,但是由于在循环体中,当 i 大于 10 的时候会执行 break 语句跳 出循环,所以循环在执行 11 次后终止,执行其循环下面的语句。
2.跳出多层循环。
在java中,使用break可以跳出循环,默认情况下是跳出最里层的循环,假如我们要跳出多层循环怎么办呢,Java替我们已经做好了这一点,就是用 循环标签 :即是对某个循环定义一个名字,然后在 break 后面加上这个名字,当符合 break 条件时,程序就会跳到规定的循环那。这个有点像我们编写PL/SQL程序。下面来一个例子吧,说明下这个问题。
  1. public static void main(String[] args){  
  2.         lableB:  
  3.         for(int i=0;i<3;i++){  
  4.             lableA:  
  5.             for(int j=0;j<3;j++){  
  6.                 System.out.println(j);  
  7.                 if(j==1){  
  8.                     break lableB;  
  9.                 }  
  10.             }  
  11.         }         
  12.         System.out.println("over!");  
  13.     }  
4.2 continue 继续语句
虽然 break 语句可以执行跳出循环,但是有时候要停止一次循环剩余的部分,同时还要 继续执行下次循环,这时候需要使用 continue 语句来实现。
for (int i = 1; i <51; i++) {
System.out.print(i+" ");
if(i%5!=0) //当 n 不能整除 5 的时候继续进行循环
continue;
else
System.out.println(“*****”); }
4.3 return 返回语句
for(int i=0;i<10;i++)
if(i<5)
System.out.println("第"+i+"次循环");
else if(i==5) return; //下面的语句永远不会执行
else System.out.println("第"+i+"次循环");
在程序中有一个循环,当循环执行五次后就执行 return 语句,这时候当前方法结束。由 于该方法是主方法,所以程序退出。

5.遍历数组
数据大小排序公式(N代表数组的大小)
冒泡法:
拿数组[前一个]跟数组[后一个]比较,把小的数字往后放。
n=数组.length;
for(int i=0;i<n-1;i++){
for(int j=0;j<n-i-1;j++){
if(a[j]<a[j+1]){
int t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
拿数组[前一个]跟数组[每一个]比较,把小的数字往前放
for (int i = 0; i < a.length; i++) {
for (int j = i; j < a.length; j++) {
if (a[j] < a[i]) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
选择法:
int [] n=数组;
for(int i=0;i<n.length;i++){
int t=i;
for(int j=i;j<n.length;j++){
if(n[t]<n[j]){
int temp=n[t];
n[t]=n[j];
n[j]=temp;
}
}
}

For-Each 循环的一般使用
for(数据类型 变量 :集合)
语句块



可以熟悉循环的实例:
九九乘法表、螺旋矩阵、水仙花、银行系统、文字游戏

笔试题范围太大,基本都是跟循环和if有关,最基本的循环笔试题就冒泡法。
1.在JAVA中如何跳出当前的多重嵌套循环?
可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的的break语句,即可跳出
2.switch语句能否作用在byte上,能否作用在long上,能否作用在String上?
switch可作用于char byte short int
switch可作用于char byte short int对应的包装类
switch不可作用于long double float boolean,包括他们的包装类
switch中可以是字符串类型,String(jdk1.7之后才可以作用在string上)
switch中可以是枚举类型
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值