Java学习笔记(二)判断

计算机的智能是建筑在规则的基础上的,在遇到情况的时候,根据事先制定的规则做出判断,是计算机最基本的能力。

能做判断的基础,是能对数据做比较,比较就是关于两个数据是否相等、谁大谁小的结论,这需要用到关系运算:对两个数据之间的关系的计算。

Java提供了六个关系运算符:

==  相等

!=  不相等

>   大于

>=  大于或等于

<   小于

<=  小于或等于

注意其中有两个字符的运算符:==、>=和<=的两个字符必须紧紧连在一起,中间不能插入空格。

关系运算的结果是一个逻辑值,逻辑值只有两种可能的值:true(真,表示成立)或false(假,表示不成立)。当两个值的关系符合关系运算符的预期时,关系运算的结果为true,否则为false。

2.1 作比较

  • 自动售票机
import java.util.Scanner;

public class AB {

    private static Scanner in;

    public static void main(String[] args) {                
        //初始化
        in = new Scanner(System.in);
        //      读入投币金额      
        System.out.println("请投币");
        int amount = in.nextInt();
        //计算并找零
        if(amount<10)
        {
            System.out.println("请继续投币");
        }
        else
        {
            //打印车票
            System.out.println("*************");
            System.out.println("*java城际特快*");
            System.out.println("**无指定座位**");
            System.out.println("***票价 10元**");
            System.out.println("*************");
            System.out.println("找零"+(amount-10));           
        }   
    }
}

2.3 运算关系

Double a = 1.0
Double b = 0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1
System.out.println(a==b);
false

  • 判断两个浮点数是否相等
    Math.abs(a-b)<1e-6
    tips:
    1e-6 可续计数法,表示 1*10的负6次方;
    math.abs(),取绝对值。

根据比较的结果,决定做、还是不做某些动作,就要用到if语句。

一个基本的if语句由一个关键字if开头,跟上在括号里的一个表示条件的逻辑表达式,然后是一对大括号“{}”之间的若干条语句。如果表示条件的逻辑表达式的结果为true,那么就执行后面跟着的这对大括号中的语句,否则就跳过这些语句不执行,而继续下面的其他语句。

有的时候我们希望在条件成立的时候做一件事情,而在条件不成立的时候做另外一件事情。这可以在if语句后面跟上一个else子句,形成一个if-else语句。引用块内容

2.4 做判断

  • 判断年纪
import java.util.Scanner;

public class Age {

    private static Scanner in;

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        final int MINOR = 35;
        System.out.println("请输入你的年纪");
        in = new Scanner(System.in);
        int age = in.nextInt();
        System.out.println("你的年纪是"+age);
        if (age < MINOR)
        {
            System.out.println("年轻是美好的");
        }
        System.out.println("年龄决定了你的精神世界,请好好珍惜");
    }

}

tips:
1, if后忘记了{}永远在if else后面加上大括号,即使后面只有一条语句
2,在if()后面加;
3,错误的使用==和=if只要求()里的值是ture或false
4,在if和else之后必须加上大括号形成语句块大括号内的语句缩进一个tab
5,单一出口是一种好的代码风格。

2.8 多路分支

  • switch case
import java.util.Scanner;

public class Switch {

    private static Scanner in;

    public static void main(String[] args) {
        in = new Scanner(System.in);
        int type = in.nextInt();
        switch(type)
        {
        case 1:
            System.out.println("我是最帅的");
            break;
        case 2:
            System.out.println("你好");
            break;
        case 3:
            System.out.println("1");
            break;
        case 4:
            System.out.println("你2");
            break;
        default:
            System.out.println("你3");
            break;

        }

    }

}

tips:

switch(控制表达式)
{
case 常量:语句
case 常量:语句
……….
default:
}
break;跳出判断。
continue;继续判断

作业

时间换算

题目内容:

UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8。现在,你的程序要读入一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。如1124表示11点24分,而905表示9点5分,36表示0点36分,7表示0点7分。

有效的输入范围是0到2359,即你的程序不可能从测试服务器读到0到2359以外的输入数据。

你的程序要输出这个时间对应的UTC时间,输出的格式和输入的相同,即输出一个整数,表示UTC的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。

提醒:要小心跨日的换算。

输入格式:

一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。

输出格式:

一个整数,表示UTC的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。

输入样例:

903

输出样例:

103

import java.util.Scanner;

public class time {

    private static Scanner in;

    public static void main(String[] args) {
        in = new Scanner(System.in);
        int a = in.nextInt();
        if(a<800)
        {
            System.out.println(a+2400-800);
        }
        else
        {
            System.out.println(a-800);
        }
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值