Java流程控制

计算机算法流程,只有三种基本结构---------顺序结构、选择结构、循环结构。

目录

顺序结构

选择结构

if选择结构

switch选择结构

循环结构

while循环

do-while

for循环


顺序结构

程序自上往下顺序执行

选择结构

if选择结构

if语句单分支

if--else语句(双分支)

if--elseif......(多分支)

嵌套if语句

switch语句

import java.util.Scanner;

public class Shopping {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入是否为会员:");
        String yOn = sc.next();
        System.out.println("请输入购物金额:");
        double money = sc.nextDouble();
        double moneyShiJi = money;
        if ("y".equals(yOn)){if (money>200){
          moneyShiJi = money*0.75;
        }else {
            moneyShiJi = money*0.8;
        }

        }else {
            if (money > 100) {
                moneyShiJi = 0.9 * money;
            }
        }
        System.out.println("实际支付:" + moneyShiJi);
    }
}

switch选择结构

switch选择结构可以更好地解决等值判断问题
 

switch (表达式) {

      case 常量 1:
        语句;
        break;

      case 常量 2:
        语句;
        break;
    …
    
    default:
        语句;
        break;

public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("欢迎使用我行我素购物管理系统\n\n1.登录系统\n\n2.退出\n\n**************************************");
        System.out.println("\n\n请选择,输入数字:");
        int num1 = sc.nextInt();
        switch (num1){
            case 1:
                System.out.println("1.客户信息管理\n2.购物结算\n3.真情回顾\n4.注销");
                int num2 = sc.nextInt();
                switch (num2){
                    case 1:
                        System.out.println("1.显示所有客户信息\n2.添加客户信息\n3.修改客户信息\n4.查询客户信息");
                        System.out.println("谢谢您的使用!");
                        break;
                    case 3:
                        System.out.println("1.幸运大放送\n2.幸运抽奖\n3.生日问候");
                        System.out.println("谢谢您的使用!");
                        break;
                    default:
                        System.out.println("谢谢您的使用!");
                        System.exit(0);
                }
                break;
            case 2:
                System.out.println("谢谢您的使用!");
                break;
            default:
                System.out.println("谢谢您的使用!");

        }

    }

相同点与不同点 :
都是用来处理多分支条件的结构
switch 
只能处理等值条件判断的情况
多重if选择结构
没有switch选择结构的限制,特别适合某个变量处于某个连续区间时的情况

if选择结构,包括以下形式
基本if选择结构:可以处理单一或组合条件的情况
if-else选择结构:可以处理简单的条件分支情况
多重if选择结构:可以处理分段的条件分支情况
嵌套if选择结构:可以处理复杂的条件分支情况
switch选择结构
多重分支并且条件判断是等值判断的情况
 

循环结构

无论哪一种循环结构,都有4个必不可少的部分:
初始部分、循环条件、循环体、更新循环变量

while,for循环是先判断再循环

do-while 循环是先循环再判断
 

while循环

while ( 循环条件 ) {    
       循环操作
}
 

do-while

do {
    循环操作
} while ( 循环条件 );
 

 int num = 0;
        int numSum =0;
        while (num <= (98)){
            numSum = numSum + (num += 2);
        }

for循环

for (参数初始化;条件判断;更新循环变量){

循环操作;

}

for (   int i = 0 ;    i  < 100 ;     i++  ) {
         System.out.println("好好学习!");
}    

continue 跳出当前循环,不执行continue语句后面循环内的内容。重新执行下一次循环。只能在循环当中使用。

break 结束当前循环 执行循环语句后面的内容。

return:结束当前方法的执行并退出,返回到调用该方法的语句处
 

package com.base;

import java.util.Scanner;

import static java.lang.System.in;

public class Shopping {
    public static void main(String[] args) {
        Scanner sc = new Scanner(in);
        String anwser = "y";
        double allTotal = 0;
        while (!"n".equals(anwser)){
            System.out.println("MyShopping购物管理系统>购物结算");
            System.out.println("***********************************");
            System.out.println("请选择购买的商品编号:\n1.T恤\t2.网球鞋\t3.网球拍");
            System.out.println("***********************************");
            System.out.println("请输入商品编号:");
            int choice = sc.nextInt();
            double goodsMoney = 0;
            String goodsName = "商品编号不存在";
            switch (choice){
                case 1:
                    goodsName = "T恤";
                    goodsMoney = 245.0;
                    break;
                case 2:
                    goodsName = "网球鞋";
                    goodsMoney = 570.0;
                    break;
                case 3:
                    goodsName = "网球拍";
                    goodsMoney = 320.0;
                    break;
                default:
                    System.out.println("商品不存在!请重新输入:");
                    continue;
            }
            System.out.println("请输入商品数量:");
            int num = sc.nextInt();
            double total = num * goodsMoney;
            allTotal += total;
            System.out.println(goodsName + "\t" + goodsMoney + "数量:" + num + "\t合计:" + total);
            System.out.println("是否继续(y/n)?");
            anwser = sc.next();
        }
        System.out.println("折扣:0.8");
        double money = allTotal*0.8;
        System.out.println("应付金额:" + money);
        double pay = 0;
        do{
            System.out.println("实付金额:");
            pay = sc.nextDouble();
            if(pay < money){
                System.out.println("实付金额不能小于应付金额!");
            }
        }while (pay < money);
        System.out.println("找零: " + (pay - money));
        System.out.println("程序结束");
        System.exit(0);
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值