JAVA流程控制 IF ELSE语句与Switch Case语句的使用

一、IF选择语句

IF选择结构

    if(condition) {
        statement1;
       //此处可以是一条单独的语句,也可以是位于花括号中的代码块
    }else 
        statement2;
       //此处可以是一条单独的语句,也可以是位于花括号中的代码块
               }
       //condition:是返回一个boolean值的逻辑表达式            

if执行过程:如果条件(condition)为真,就执行语句1(statement1),否则就执行语句2(statement2)

else 子句为可选
int i =5;
if (i>1) {
    System.out.println("i大于1");
}
多重if选择结构 if-else if
if (condition1) {

                     statement1;

           }else if (condition2){

                     statement2;

}else if (condition3) {

                    statement3;
...
else {

                statement;

           }

这个if语句自顶向下开始执行,只要一个if的条件为真,就执行与该if相关联的语句,然后跳过其余部分。如果执行所有条件为假,则执行else中的语句。

嵌套if选择结构 if-else {if -else}
            if (condition1) {

                     if (condition1_1) {

                            statement1_1;
        else {

                       statement1_2;

                     };

           }else {

                statement2;

           }

这个if语句自顶向下开始执行,(condition1)的条件为真,就进入 该语句,再判断嵌套的if选择结构,执行相关联的语句。然后跳过其余部分。如果(condition1)的条件为假,则执行else中的语句。

switch 多路分支语句

switch (expression) {
    case value1:
        statement;break;
    case value2:
        statement;break;
    case value3:
        statement;break;
    default:
        statement;
}
语法说明:

1、expression表达式的类型只能为byte、short、char 和int 这4 种之一。
2、值1、值2…值n 只能为常数或常量,不能为变量。
3、功能代码部分可以写任意多句。
4、break 关键字的意思是中断,指结束switch 语句,break 语句为可选,如果省略了break语句,程序会继续执行下一个case语句。
5、case 语句可以有任意多句,是标号语句。
6、default 语句可以写在switch 语句中的任意位置,功能类似于if 语句中的else。

执行流程:

当表达式的值和对应case 语句后的值相同时,既从该位置开始向下执行,一直执行到switch 语句的结束,在执行中,如果遇到break 语句,则结束switch 语句的执行。

实例一
package com.endless;

import java.util.Scanner;

/**
* @JAVA02.Intsum.java
* @author 当前用户:Endless作者 :Endless
* @version 创建时间:2017年7月25日 下午5:58:04
* 读入10到9999的一个整数并将其各位数字之和赋给一个整数
* 整数取余10结果为其个位数
* 整数除以10结果为其个位前加点然后取整数位
*利用%运算符分解数字,并用/运算符去除分解出来的数字。如932%10=2,932/10=93
*/
public class Intsum {
    public static void main(String []args){
        int num =scan();
        if(num>9999 || num<10){
            if(num>9999){
                System.out.println("输入值过大");
                main(args);
            }else{
                if(num==0){
                    System.exit(0);
                }else{
                System.out.println("输入值过小");
                main(args);
            }
        }
        }else{
            int x=num%10;
            int y=num/10%10;
            int z=num/100%10;
            int n=num/100%10;
            System.out.println("此整数各为数之和为:"+(x+y+z+n));
            main(args);
    }
        }
    public static int scan(){
        System.out.println("输入0退出程序\n请输入一个10到9999之间的整数:");
        Scanner in =new Scanner(System.in);
        return in.nextInt();
    }
}

实例二:

package IFELSE;
import java.util.Scanner;

/**
* @JAVA03.ifswicth.java
* @author 当前用户:Endless作者 :Endless
* @version 创建时间:2017年7月26日 上午11:58:59
* 
*/
public class ifswicth {
    static Scanner in = new Scanner(System.in);
    static int s;
    static  String bke="百事可乐",ke="500ml可乐一瓶",m="5公斤面粉",ss="1个苏泊尔炒菜锅",o="欧莱雅爽肤水一瓶";
    public static void main(String[] args) {
        System.out.println("请输入消费金额:");

        if(in.hasNext()){
            s=in.nextInt();
            System.out.println("是否参加优惠换购活动:" );
            System.out.println("1:满50元,加2元换购"+bke );
            System.out.println("2:满100元,加3元换购" +ke);
            System.out.println("3:满100元,加10元换购" +m );
            System.out.println("4:满200元,加10元换购" +ss );
            System.out.println("5:满200元,加20元换购 " +o );
            System.out.println("0:不换购\n请选择:\n" );
            os();
        }else{
            System.out.println("请输入数字");
            main(null);
        }
    }
    static void out(String n , int s){
        System.out.println("本次消费总金额:"+s);
        System.out.println("成功换购"+n);
        main(null);
    }
     static void os(){
          switch (in.nextInt()) {
            case 1:
                if(s>=52){
                    out(bke,s+2);
                }else{
                    Err();
                }
            case 2:
                if(s>=103){
                    out(ke,s+3);
                }else{
                    Err();
                }
                break;
            case 3:
                if(s>=110){
                    out(m,s+10);
                }else{
                    Err();
                }
                break;
            case 4:
                if(s>=210){
                    out(ss,s+10);
                }else{
                    Err();
                }
                break;
            case 5:
                if(s>=220){
                    out(o,s+20);
                }else{
                    Err();
                }
                break;
            default:
                System.out.println("请重新选择");
                os();
            }
    }
     static void Err(){

         System.out.println("金额不足\n");
         main(null);
    } 
}

实例三

package IFELSE;

import java.util.Scanner;

/**
* @JAVA03.Grade.java
* @author 当前用户:Endless作者 :Endless
* @version 创建时间:2017年7月26日 下午1:38:34
* 请实现 班级考试成绩分级
* 成绩  >=90   A 级;
* 成绩  >=80   B 级;
* 成绩  >=70   C 级;
* 成绩  >=60   D 级;
* 成绩  <=60   E 级;
*/
public class Grade {

    @SuppressWarnings("resource")
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("输入一个0到100的整数格式的分数:");
        if(in.hasNext()){
        try {
            int gra =in.nextInt();
            if (gra<=100){
                if (gra>=90){
                     out("A");
                }else if (gra>=80) {
                    out("B");
                }else if (gra>=70) {
                    out("C");
                }else if (gra>=60) {
                    out("D");
                }else if (gra<=60) {
                    out("E");
                }else {
                    main(args);
                }

            }else{
                main(args);
            }

            } catch (Exception e) {
                main(args);
            }
        }
    }
    static void out(String s){
        System.out.println("成绩等级为"+s+"级");
    }
}

实例四

package IFELSE;

import java.util.Scanner;

/**
* @JAVA03.season.java
* @author 当前用户:Endless作者 :Endless
* @version 创建时间:2017年7月26日 下午2:01:58
* 请实现 输入月份  判断季节
* 春季(123)   输出 春暖花开学java?春困,再等等!
* 夏季(456)   输出 艳阳高照学java?夏乏,再等等!
* 秋季(789)   输出 秋高气爽学java?秋燥,再等等!
* 冬季(10-12) 输出 瑞雪纷飞学java?冬寒,再等等!
*/
public class season {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入一个小于1到12 的数字");
        if(in.hasNext()){   
            try {
                int x = in.nextInt();
                if(x>=1 && x<=12){
                    if(x==1||x==2||x==3){
                        System.out.println(" 春暖花开学java?春困 ");
                        main(args);
                    }else if (x==4||x==5||x==6) {
                        System.out.println(" 艳阳高照学java?夏乏 ");
                        main(args);
                    }else if (x==7||x==8||x==9) {
                        System.out.println(" 秋高气爽学java?秋燥");
                        main(args);
                    }else if (x==7||x==8||x==9) {
                        System.out.println(" 瑞雪纷飞学java?冬寒");
                        main(args);
                    }
                }else{
                    main(args);
                }
            } catch (Exception e) {
                 main(args);
            }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值