java笔记04 语句与流程控制


1.  程序流程控制

1.1 分类

顺序结构(即普通代码,按顺序读取)

判断结构

选择结构

循环结构

 

2.  判断结构(if语句)

2.1 格式1

if(条件表达式)

{

     执行语句;

}

2.2 格式2

if(条件表达式)

{

     执行语句;

}

else

{

     执行语句;

}

2.3 格式3

If(条件表达式)

{

     执行语句;

}

elseif(条件表达式)

{

     执行语句;

}

……

else

{
    执行语句; 

}

 

2.4 注意点

1、 if只有一条语句时,可以不用大括号。

2、 ifelse语句类似于三元运算符,但三元运算符是一种运算,运算之后有结果。

3、 每一种格式都是单条语句,即只执行一次。

 

2.5 练习

class IfDemo1
{
        public static void main(String[] args)
        {
                /*
                一年有四季。
                春季:3 4 5
                夏季:6 7 8
                秋季:9 10 11
                冬季:12 1 2
                根据用户输入的月份,给出对应的季节。
                */
               
                int month = 3;
               
                if(month<1 || month>12)
                        System.out.println("没有对应的月份");
                else if(month>=3 && month<=5)
                        System.out.println(month+"月是春季");
                else if(month>=6 && month<=8)
                        System.out.println(month+"月是夏季");
                else if(month>=9 && month<=11)
                        System.out.println(month+"月是秋季");
                else
                        System.out.println(month+"月是冬季");       
        }
}
 


结果:3月是春季

   

3.  选择结构

3.1 格式

 switch(表达式)
 {

case 取值1:

执行语句;

break; 

case取值2:

执行语句;

break;

default:

执行语句;

break;

}

3.2 注意点

1、  switch语句选择的类型只有四种:byte,short,int,char。

JDk1.5可以支持enum类型,最新版本支持字符串类型。

2、  case之间与default没有顺序。先执行第一个case,没有匹配的case执

行default。

3、 结束switch语句的两种情况:遇到break,执行到switch语句结束。

4、 如果匹配的case或者default没有对应的break,那么程序会继续向下

执行,运行可以执行的语句,直到遇到break或者switch结尾结束。

 

3.3 练习

class SwitchDemo1
{
       public static void main(String[] args){
             int x= 3;
             switch(x)
            {
                   default:
                        System.out.println("d" );
                        break;
                   case 4:
                        System.out.println("a" );
                        break;
                   case 2:
                        System.out.println("b" );
                        break;
                   case 3:
                        System.out.println("c" );
                        break;
            }
      }
}

结果:c

 

class SwitchDemo2
{
       public static void main(String[] args){
             int x= 3;
             switch (x)
            {
                   case 4:
                         System.out.println("a" );//不匹配不执行
                         break ;
                   case 2:
                        System.out.println("b" );//不匹配不执行
                   case 3:
                        System.out.println("c" );//匹配执行,无break
                   default :
                        System.out.println("d" );//继续执行默认
            }
      }
}


结果:c

   d

 

 

class SwitchDemo3//多个case对应同一个结果
{
       public static void main(String[] args){
            int month = 3;
 
            switch(month){
                 case 3:
                 case 4:
                 case 5:
                      System.out.println(month + "月对应的是春季" );
                 case 6:
                 case 7:
                 case 8:
                      System.out.println(month + "月对应的是夏季" );
                 case 9:
                 case 10:
                 case 11:
                      System.out.println(month + "月对应的是秋季" );
                 case 12:
                 case 1:
                 case 2:
                      System.out.println(month + "月对应的是冬季" );
                 default:
                      System.out.println(month + "没有对应的季节" );
           }
      }
}

 结果:3月对应的是春季

3.4  if与switch

1、 if可以判断具体的值、判断区间以及布尔型结果。

2、 switch可以判断具体的值,这几个值通常是固定的。

3、 单个数据判断,值不多,用switch,其他用if。

 

4.  循环结构(while、do while、for)

4.1 while语句

while语句格式:

while(条件表达式)

{

执行语句;

}

    示例

   

class  WhileDemo1
{
        public static void main(String[] args)
        {
                int x = 1;
                while(x<3)//注意后面不要有分号,不然就是死循环。
                {
                        System.out.println("x="+x);
                        x++;
                }
        }
}

结果:

    x=1

    x=2

 

4.2  do while语句

dowhile语句格式:

do

{

执行语句;

}while(条件表达式);

 

dowhile特点是条件无论是否满足,循环体至少被执行一次。(先执行后判断)

   

    示例

   

class DoWhileDemo1
{
       public static void main(String[] args){
         int x = 1;
         do{
            System.out.println("x = " + x);
            x++;
         }
         while(x < 3);
      }
}

结果:

    x=1

    x=2

 

4.3 for循环

格式:

for(初始化表达式1;循环条件表达式2;循环后的操作表达式3)

{

执行语句4;

}

    执行顺序是:初始化1-->判断条件2-->执行语句4-->表达式3-->判断条件2-->语句4-->表达式3……直到条件不符合为止。

    条件表达式结果必须是布尔型,不写默认是true。

 

    示例:

   

class ForDemo1
{
     public static void main(String[]args)
     {
          int x=1;
          for(System.out.print ("a");x<3;System.out.print("c"))
          {
               System.out.print("d");
               x++;
          }
     }
}


    结果:adcdc

 

4.4 注意点

1、 for里面的连个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复找个过程,直到条件不满足为止。

2、 while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就是在内存中释放。而while循环使用的变量在循环结束后还可以继续使用。

3、 最简单无限循环格式:while(true) , for(;;),无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。

 

5.  循环嵌套

5.1 循环中还有循环,称之为循环嵌套

5.2 练习1

打印输出以下图形
*****
****
***
**
*
 
class ForForDemo
{
       public static void main(String[] args)
{
            for(int x = 5; x >=1; x--)
{
               for(int y = x; y >=1; y--)
                {
                    System.out.print("*" );
                }
               System.out.println();
            }    
}
}

练习2 九九乘法表

class ForForDemo
{
       public static void main(String[] args){
         for(int x = 1; x <= 9; x++){
                   for(int y = 1; y <= x; y++){
                        System.out.print(y + "*" + x + "=" + (x * y) + "\t");
                  }
                  System.out.println();
         }
      }
}


 

5.3  其他流程控制语句

break(跳出),continue(继续)

break语句:应用范围:选择结构(switch)和循环结构(loop)。

continue语句:应用于循环结构(loop)。

         示例:break

class BreakDemo
{
       public static void main(String[] args){
         for(int x = 0; x < 3; x++){
            for(int y = 0; y < 4; y++){
                  System.out.println("x = " + x);
                  break;
            }    
         }
      }
}


结果

x=0

x=1

x=2

此时y还是等于0,内层循环没有执行到y++。

 

         示例:continue

class ContinueDemo
{
       public static void main(String[] args){
         for(int x = 0; x < 7; x++){
                   if(x % 2 == 0)
                         continue;
                  System.out.println("x = " + x);
         }
      }
}


         结果

                   x=1

                   x=3

                   x=5

 

5.4  注意点

1、这两个语句离开应用范围,存在是没有意义的。

2、这个两个语句单独存在下面都不可以有语句,因为执行不到。

3、continue语句是结束本次循环继续下次循环。

4、标号的出现,可以让这两个语句作

例如

class ContinueDemo2
{
       public static void main(String[] args){
         out: for(int x = 0; x < 3; x++){
              in: for(int y = 0; y < 4; y++){
                   System.out.println("x = " + x);
                   continue out ;//继续外层循环
              }
         }
      }
}


         结果

                   x=0

                   x=1

                   x=2

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值