分支语句

分支语句

相对于顺序语句来说,分支语句多用于处理特殊情况,Java中的分支语句有:

if... else if ... else

switch...case

jdk8中switch 可以是字符串类型
每个case中不要忘了break
这两个语句是等价的。

1、程序的结构

程序默认从上到下顺序执行(顺序结构)

程序的结构:顺序结构、分支结构、循环结构

2、if分支语句

程序执行的过程中可以有多个选择
格式:
     if(表达式){

          语句块;
     }

     ......

 进行表达式的求值:如果表达式的值为非0(真) 会执行语句块
                              0 (假) 不会执行语句块,

3、if分支语句的几种形式

1)最简单的,要不执行,要不是不执行

 if(表达式){
 
 语句块;

 }



2)if.....else......

 if(表达式){

    语句块1;

 }else{

    语句块2;
 }

 进行表达式的求值:如果表达式的值为(真) 会执行语句块1
                           0 (假) 会执行语句块2

 注意:语句块1和语句2只可能被执行一次


 3)if...else...的嵌套问题

 if(表达式1){

     if(表达式2){    //表达式1值为1,并且表达式2值为1

         语句块1;

     }else{
        语句块2;    //表达式1值为1,但是表达式2的值为0
     }

 }else{

    语句块3;        //表达式1为0的时候

 }



4)if..... else if ......else....

 if(表达式1){

    语句块1;  //表达式1为真

 }else if(表达式2){
   
    语句块2;  //当表达式1不成立,但是表达式2成立

 }else{

     语句块3; //当表达式1和表达式2都不成立的时候
 }

4、if注意点

1)if(1)、if(-1)、if(a=5)  永真式   if(0) 永假
2)if(表达式);  表示判断完了什么都不做
3) if(表达式) return 0; //程序退出,代码不会再往下执行了
4) if(表达式){int num=10;}  printf("%d",num);(错误的)
5)if(表达式) int num=10; (作用域紊乱)

5、switch分支语句

也是用于条件判断,当表达是的结果有多种情况,用switch比较方便一些

格式:

   switch(表达式){

      case 整型常量或者字符常量: 语句;
       .....


      default:
            //如果上面的条件都不满足,执行default

   }


  计算表达式的值,用这个值和case后的常量进行比较,如果这个值等于了某个常量值,会执行case对应的分支语句,遇到break;才结束,如果没有遇到break,程序一直会往下执行,直到switch语句结束

6、switch的注意点

1)switch(表达式)    表达式:返回值是整型
2)case 常量        常量:必须是整型的 ,不能是flaoat    cast 2.3:
                   可以放常量表达式,但是不允许:a+3
3) 作用域的问题

   case 3: {
             int num=-1;
         }
   case 4:printf("%d\n",num); 不允许的

4)case分之语句可以有多句,可以使用大括号,也可以不使用
5)作用域紊乱的问题:  case 4:int a=4; (错误的)

简易计算机

import java.util.Scanner;

public class Calc {
 public static void main(String [] args) {

    String expression="", again;
    int result;
    try {
        Scanner in = new Scanner(System.in);

        do {
            MyBC evaluator = new MyBC();

            System.out.println("Enter a valid postfix expression: ");
            int i=0;
            System.out.println(args[0]+"\n");
            while(i<args[0].length()){
                expression += args[0].charAt(i)+" ";
                i++;
            }
            result = evaluator.turn(expression);
            System.out.println();
            System.out.println("That expression equals " + result);

            System.out.print("Evaluate another expression [Y/N]? ");
            again = in.nextLine();
            System.out.println();
        }
        while (again.equalsIgnoreCase("y"));
    } catch (Exception IOException)

    {
        System.out.println("Input exception reported");
    }
}

}

运行结果图:

posted on 2017-06-10 11:14  吕宇轩  阅读(598)  评论(0编辑  收藏  举报