java之旅 (第四天) switch语句 For语句 While语句

Switch语句

 

switch语句的格式:

switch(表达式){

case 常量值1:

语句体1;

break;

case 常量值2:

语句体2;

break;

case 常量值3:

语句体3;

break;

...

default:

语句体n+1;

}

 

注: 1.switch为语句的关键句,表示开关语句

2.表达式:必须返回一个特定类型的值(不能是boolean类型),并且           要与case的类型相匹配

这个地方有限定:byte/short/int/char(唯独没有boolean)

JDk5的版本以后支持枚举

JDK7的版本以后支持String

举例:

switch(3>4) //此句会报错

case true

case false    ✘

3.常量:无论是一个常量,还是常量表达式,都可以(常量表达式会先   自己算出结果,然后再匹配,两者都属于字面常量)

不能有重复的case

4.default:当上面所有case的值都不匹配时,就会执行其代码

5.break(跳出当前循环)

break能否省略?

可以省略,但是不建议,因为会造成结果的穿透

举例:

int i=1;

switch(i)

case 1:

case 2:

case 3:

如果不加break,将会执行case 1后面的所有语句,直到行尾

6.switch语句的结束:①遇到break ②到switch末尾

因此,当default放在开头前,必须加break,不然就会穿透

举例:

int x=4;

switch(x)

{

default:

x=x+2;

case 3:

x++;

case 6:

x++;

}   //输出8

注:

就算X变为6,也不会再去匹配,执行到 break 或 语句尾

 

 

练习:

switch (month) {

case 1:

 

case 2:

case 12:

System.out.println("冬季");

break;

case 3:

case 4:

case 5:

  System.out.println("春季");

break;

case 6:

case 7:

case 8:

  System.out.println("夏季");

break;

case 9:

case 10:

case 11:

  System.out.println("秋季");

break;

 

default:

System.out.println("我也不知道啥季节");

break;

}

}  //利用穿透,一直执行,理解为多个执行同一语句,(case 3,4会 报错)

 

 

For语句

for(初始化条件;判断条件语句;控制条件语句){

循环体语句;

}

 

 

a.执行初始化条件 int a = 5;

b.执行判断条件语句,看其返回的结果是true还是false

如果是true,就继续执行循环体 a < 50

如果是false,就结束循环

c.执行循环体语句

d.执行控制条件语句 a++

e.继续回到b步骤进行执行

 

 


 

 

While语句

基本格式

   while(判断条件语句) {

          循环体语句;

   }

扩展格式

      初始化语句;

   while(判断条件语句) {

          循环体语句;

          控制条件语句;

    }


 

Do-While语句

do {

         循环体语句;

   }while((判断条件语句);

扩展格式

   初始化语句;

   do {

         循环体语句;

         控制条件语句;

    } while((判断条件语句);

注:无论,判断结果如何,都会先执行一次(不推荐使用)


 

控制条件语句:continue:中断

for(int i = 1;i <= 10;i++) {

if(i == 4) {

continue;//当前循环不执行,后面的继续(不执行 语句,直接转到控制语句)

}

System.out.println(i);//1 2 3    5 6 7 8 9 10

}


 

补充

求余:提取各个位数

 

举例:

int i=1234

int ge=i%10;            //提取个位数

int shi=i/10%10;        //提取十位数:* / % 优先级一样,左往右

int bai=i/100%10;       //提取百位数

int qian=i/1000;        //提取千位:可以取余也可以不取(取模)

注:原理:这数除以10,100,变为double型,在进行类型转换时,对丢失小数部分,个位上的数就是我们要提取的数

 

 

while与for的区别:

 

1.当循环结束后,还要使用循环变量,用while

  当循环结束后,不需使用循环变量,用for

举例:

for(int i=1;i<2;i++)

int i=1;

while(i<2);   //涉及到使用率的问题,因此一般使用for,减少内存         的开销

2.当循环次数已知时,使用for

  当循环次数未知,使用while

3.for while使用指导:

先看需不需要使用循环变量,如果要,一定是while,就算是已知条件 也可以用while来实现。如果不要,基本上就用for;(能用for就用 for, 节省内存的开销,当循环结束后,系统会自动释放循环变量的内 存)

4.优先考虑for循环,其次while循环,最后doWhile循环.

 

 

break结束循环

 

使用的常见:

a.swtich

b.所有循环语句

注意:离开上面的场景  无效(如无特殊标记,只能结束当前循环)

如何使用?

跳出单层循环:简单不讲

跳出多层循环:

1.在外面定义一个开关标记,然后使用标记来判断是否结束

2.使用标签

标签名:循环语句

break 标签名;

3.无论是循环语句,还是switch语句都适用

4.JDK7以前的版本都没有

举例:

wc:for()

{

switch()

{

case 1:

break;  //跳出switch循环

case 2:

break wc; //跳出for循环(跳出整个循环)

}

}

 

int i=4;

int a=5;

wc:switch (i) {

case 4:

{

switch(a)

{

case 5:

System.out.println("你好");

break wc;   //跳出大switch

}

}

case 3:

System.out.println("不好");

break;

}

 

 


 

超市管理系统

1.退出系统为:System.exit(0);  //返回某个数值,表示退出

 

2.try{                                //使用睡眠,使程序暂停一会

       Thread.sleep(1000);            

      }

 catch(Exception e)

     {

       e.printStackTrace();

      }                           //因为Thread.sleep(毫秒)会抛出一个 异常,因此必须catch(Exception e){ e.printStackTrace()}

StackTrace:堆痕

 

3.在case中,0执行后不能继续外层的循环,只能结束(如果想按0后继续回到      上一层的循环,是不允许的)

 

4.由于java中没有特定的输入方法来接收char类型,因此需要以下方法

String y_n=sc.next();

char c = y_n.charAt(0);

就是先获取一个字符串类型,再获取字符串类型首个字符

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值