Java基础--day04

软件开发过程

软件开发生命周期是一个多阶段的过程,包括需求规范、分析、设计、实现、 测试、部署和维护

  • 确定输出
  • 决定输入
  • 将问题分解为可管理的组成部分
  • 系统分析和设计的本质是输入、处理、输出(IPO)

Snipaste_2020-02-08_17-54-22

常见错误和陷阱

常见错误1:未声明、未初始化的变量和未使用的变量
常见错误2:整数溢出
常见错误3: 取整错误
常见错误4:超出预期的整数除法
常见陷阱:冗余的输入对象

小练习

驾驶费用

import java.util.Scanner;
public class DrivePrice {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("输入驾驶里程:");
        double drivedistance = input.nextDouble();

        System.out.print("输入每加仑汽油的行驶距离:");
        double milesPergallon = input.nextDouble();

        System.out.print("输入每加仑汽油的价格:");
        double pricePergallon = input.nextDouble();

        double costs = drivedistance / milesPergallon * pricePergallon;

        System.out.println("需要油费:" + new java.text.DecimalFormat("0.00").format(costs));
    }
}

输出:

输入驾驶里程:900.5
输入每加仑汽油的行驶距离:25.5
输入每加仑汽油的价格:3.55
需要油费:125.36

boolean练习

import java.util.Scanner;

public class AdditionQuiz {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int number1 = (int)(System.currentTimeMillis() % 10);       // 利用时间GMT产生随机数
        int number2 = (int)(System.currentTimeMillis() / 7 % 10);

        System.out.print("What is " + number1 + " + " + number2 + " ?");

        int answer = input.nextInt();

        System.out.println(number1 + "+" + number2 + "=" + answer + " is 1" +
                (number1 + number2 == answer));
    }
}

利用System.currentTimeMillis()产生相关的随机数

产生随机数

可以使用Math.random()来获得一个0.01.0之间的随机double值,不包括1.0

import java.util.Scanner;
public class SubtractionQuiz {
    public static void main(String[] args) {
        int number1 = (int)(Math.random() * 10); // 产生随机数1
        int number2 = (int)(Math.random() * 10); // 产生随机数2

        if(number1 < number2){                   // 保证结果是整数
            int temp = number1;
            number1 = number2;
            number2 = temp;
        }

        System.out.print("What is " + number1 + " - " + number2 + " ? ");
        Scanner input = new Scanner(System.in);
        int answer = input.nextInt();

        if(number1 - number2 == answer){
            System.out.println("Your answer is right");
        }else{
            System.out.println("Your answer is wrong\n" + number1 + " - " +
                    number2 + " = " + (number1 - number2));
        }
    }
}

输出:

What is 9 - 2 ? 2
Your answer is wrong
9 - 2 = 7

逻辑运算符

操作符 名称 说明
逻辑非
&& 逻辑与
|| 逻辑或
^ 异或 逻辑异或

德模佛定理

\[!(condition1 && condition2)\]
等价于
\[!condition1 || !condition2\]


\[!(condition1 || condition2)\]
等价于
\[!condition1 && !condition2\]

判断闰年

  • 可以被4整除但不能被100整除
  • 可以被400整除
boolean isLeapYear = (year % 4 == 0);               // 可以被4整除
isLeapYear = isLeapYear && (year % 100 != 0);       // 不可以被100整除
isLeapYear = isLeapYear || (year % 400 == 0);       // 可以被400整除

isLeapYear = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0); // 整合

条件表达式

(布尔表达式 ? 表达式1 : 表达式2)

当表达式为True ,返回表达式1

当表达式为False,返回表达式2

操作符优先级

Snipaste_2020-02-09_15-58-38

Write by Gqq

猜你喜欢

转载自www.cnblogs.com/zgqcn/p/12529501.html