程序逻辑

第三天:程序逻辑-1(分支和循环)

  1. 程序的结构
  2. 流程图
  3. 分支结构
  4. 循环结构
  5. 多重循环结构

练习1:分段函数求值。

f(x)=3x+5x15x3(x<1)(1x1)(x>1)

package com.lovoinfo;

import java.util.Scanner;

public class Fx {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("x = ");
        double x = sc.nextDouble();
        double y;
        if(x < -1) {
            y = 3 * x + 5;
        }
        else if(x <= 1) {
            y = x - 1;
        }
        else {
            y = 5 * x - 3;
        }
        System.out.println("f(x) = " + y);
        sc.close();
    }
}

练习2:个人所得税计算。在我国,个人所得税的起征点是3500元,计算公式是:
个人所得税 = (工资收入 - 五险一金 - 个税起征点) * 税率 - 速算扣除数
其中,税率和速算扣除数可以查下表得到:

级数含税级距税率速算扣除数
1不超过1500元的30
2超过1500元至4500元的部分10105
3超过4500元至9000元的部分20555
4超过9000元至35000元的部分251005
5超过35000元至55000元的部分302755
6超过55000元至80000元的部分355505
7超过80000元的部分4513505
package com.lovoinfo;

import java.util.Scanner;

public class Tax {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入工资: ¥");
        double salary = sc.nextDouble();
        double add = salary - salary * 0.08 - 3500;
        double tax;
        if(add <= 0) {
            tax = 0;
        }
        else if(add <= 1500) {
            tax = add * 0.03;
        }
        else if(add <= 4500) {
            tax = add * 0.1 - 105;
        }
        else if(add <= 9000) {
            tax = add * 0.2 - 555;
        }
        else if(add <= 35000) {
            tax = add * 0.25 - 1005;
        }
        else if(add <= 55000) {
            tax = add * 0.3 - 2755;
        }
        else if(add <= 80000) {
            tax = add * 0.35 - 5505;
        }
        else {
            tax = add * 0.45 - 13505;
        }
        System.out.printf("需要缴纳的个人所得税: ¥%.2f元\n", tax);
        sc.close();
    }
}

作业:输入一个百分制的成绩,将其转换成对应的等级,规则如下表所示:

成绩等级
90-100A
80-89B
60-79C
<60D

package practice;

import java.util.Scanner;

public class Result {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的成绩");
        int grade = sc.nextInt();
        char rank = 0;
        if (grade > 100) {
            System.out.println("你输入的成绩无效");
        } else if (grade >= 0 && grade < 60) {
            rank = 'D';
        } else if (grade < 80) {
            rank = 'C';
        } else if (grade < 90) {
            rank = 'B';
        } else if (grade <= 100) {
            rank = 'A';
        } else if (grade > 100) {
            System.out.println("你输入的成绩无效");
        }
        System.out.println("你输入的成绩的等级为" + rank);
        sc.close();
    }

}

练习4:输入成绩等级输出对应的评语,规则如下表所示:

成绩等级评语
A该生成绩优异,学习踏实认真
B该生积极上进,学习态度较好
C该生学习努力,成绩有待提高
D该生成绩稳定,动手能力很强
package com.lovoinfo;

import java.util.Scanner;

public class CommentSystem {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入成绩等级: ");
        char level = sc.next().charAt(0);
        switch(level) {
        case 'a':
        case 'A':
            System.out.println("该生成绩优异,学习踏实认真");
            break;
        case 'b':
        case 'B':
            System.out.println("该生积极上进,学习态度较好");
            break;
        case 'c':
        case 'C':
            System.out.println("该生学习努力,成绩有待提高");
            break;
        case 'd':
        case 'D':
            System.out.println("该生成绩稳定,动手能力很强");
            break;
        default:
            System.out.println("瓜西西,输错了!");
        }
        sc.close();
    }
}

练习5:将一颗色子掷60000次,统计每一面出现的次数。

package com.lovoinfo;

public class ThrowDie {

    public static void main(String[] args) {
        int f1 = 0, f2 = 0, f3 = 0, f4 = 0, f5 = 0, f6 = 0;
        for(int i = 1; i <= 60000; i++) {
            int face = (int)(Math.random() * 6 + 1);
            switch(face) {
            case 1: f1++; break;
            case 2: f2++; break;
            case 3: f3++; break;
            case 4: f4++; break;
            case 5: f5++; break;
            case 6: f6++; break;
            }
        }
        System.out.println("1点出现了" + f1 + "次");
        System.out.println("2点出现了" + f2 + "次");
        System.out.println("3点出现了" + f3 + "次");
        System.out.println("4点出现了" + f4 + "次");
        System.out.println("5点出现了" + f5 + "次");
        System.out.println("6点出现了" + f6 + "次");
    }
}

我的体会

今天学了判断语句分支结构。在课堂上做了几次简单的练习,把前几天学的东西都运用起来感觉好神奇。为了巩固今天的知识我把今天的练习题和作业回家后又通通的敲了一遍。方便以后更好的学习。当然在学得时候还是有些地方想不明白,但必须当时就得把它弄懂,不管是和同学讨论还是问老师都得搞明白。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值