ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

编程日记:Java学习之路(三)

2021-10-20 19:33:58  阅读:327  来源: 互联网

标签:语句 case Java 编程 System 运算符 println 日记 out


3.Java分支语句

3.1数据类型转换

Java是强类型的语言,数据的类型和保存数据的变量的类型必须一致。

那么int类型的变量能不能保存byte类型的数据呢?

byte类型的变量能不能保存int类型的数据呢?

一般情况下,小的数据可以放在大的数据类型中,JVM可以实现自动类型转换。

如果要把大的数据放进小的变量中,需要手动类型转换:

变量=(变量类型)值;

int a = 10;
byte b = (byte)a;

注意:

(1)手动类型转换有可能会造成数据丢失

·大整型转变为小整型:抛弃高字节,保留低字节

·浮点转变为整型:抛弃小数部分,保留整数部分

·双精度浮点转变为单精度浮点:损失数据精度

(2)不是所有的类型都能手动进行类型转换

·boolean类型不能和其他基本类型互相转换

自动类型提升:两个数值参与运算,会发生自动类型提升

规则:参与运算的两个数值:如果有double类型,运算结果为double类型,如果有float类型,运算结果为float类型,如果有long类型,运算结果为long类型,否则运算结果为int类型

3.2运算符

运算符分为数学运算符,赋值运算符,布尔运算符,位运算符和三元运算符

数学运算符:+,-,*,/(两个整型运算的结果还是整型,小数部分被舍弃),%

赋值运算符:=:把右边的值赋给左边的变量

注意:左边必须是变量不能是表达式或者常数

赋值运算符:+=,-=,*=,/=,%=……

自增自减运算符:++,--,此类运算符不会发生自动类型提升。

布尔运算符:

==:判断两边的值是否相等,相等则值为true,否则值为false

<,<=,>,>=,!=:判断不等式是否成立

布尔运算符:

!:逻辑非:!false = true    !true = false

&&:逻辑与 同真为真

||:逻辑或 有真为真

位运算符:

QQ图片20211020181603

&、|既是位运算符,也是逻辑运算符,作用和&&、||相同。
&&、||是短路运算符
&、|是非短路运算符
短路运算:当一个子表达式的值能决定整个表达式的值时,后面的所有子表达式的值不再计算。

三元运算符:a?b:c

规则:a为布尔表达式,b和c为同一类型的表达式或值,当a为ture时,整个表达式为b的值,否则为c的值。(表达式是可以嵌套的)

3.3顺序语句

Java中的语句分为:顺序语句,分支语句,循环语句,控制语句,在Java中使用分号表示一个语句的结束。

顺序语句:

(1)赋值语句:给变量赋值

(2)输入语句:把数据传入到Java虚拟机内部

(3)输出语句:把Java虚拟机内部的数据传出

(4)函数调用语句:执行一段特定的代码

输入语句:

Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
double d = scanner.nextDouble();
String s1 = scanner.next();
String s2 = scanner.nextLine();
scanner.close();

输出语句:

System.out.println(10);
System.out.println("10");
System.out.println();
System.out.print(10);
System.out.print("10");
System.out.print();

3.4分支语句

当某个条件满足时才执行某个代码块

if语句:

if(布尔表达式){
    
}

1

if(布尔表达式){

}else{

}

2

多分支的if语句:在if和else之间,可以写若干个else if,使if语句实现多个分支:

if ( 布尔表达式 ) {……}        // 第一个分支
else if( 布尔表达式 ) {……}    // 第二个分支
else if( 布尔表达式 ) {……}    // 第三个分支
else {……}                // 第四个分支

if else语句是可以进行嵌套使用的,也就是if else语句中还可以写if else语句

switch语句:

3

if (a == 1) {
    System.out.println("a = 1");
} else if (a == 2) {
    System.out.println("a = 2");
} else if (a == 3) {
    System.out.println("a = 3");
} else {
    System.out.println("error");
}

if语句还是存在一些问题的,比如,如果所有的if/else语句中if语句中的布尔表达式都为false,会导致代码的执行效率低,这个时候我们就可以选择使用switch语句来进行选择分支

4

// ①
switch( 表达式 ) {
    case 值1: 
        // ②
    case 值2:
        // ③
    case 值3:
        // ④
}
// ⑤

switch语句表达式的类型:byte,short,int,char,java.lang.String,枚举,不能是boolean类型

case后面值的类型:必须是常量或者枚举值,不能是表达式

switch语句存在的问题:
在每一个分支中的代码块执行完以后,不会跳出switch语句,而是会继续执行下一个分支中的代码块,直到整个switch语句执行完为止。
如果想在执行完一个代码块后就跳出switch语句,需要在每个分支的代码块最后增加break语句。

如果表达式的值和case后面的值都不相等,可以使用default子句,这时会执行default后面的代码块。

switch语句总结:可以有多个case子句,最多有一个default子句,case和default子句的顺序无关紧要。

在switch语句中可以嵌套switch语句,同时也可以和if语句相互嵌套

3.5练习

(1)从键盘输入一个表示年份的正整数,输出此年份是平年还是闰年。请使用至少两种方法实现。

import java.util.Scanner;
public class Java_day03_01 {
    public static void main(String[] args){
        Scanner year = new Scanner(System.in);
        int years = year.nextInt();
        if(years%400==0){
            System.out.println("闰年");
        }
        else if (years%4==0 && years%100!=0){
            System.out.println("闰年");
        }
        else{
            System.out.println("平年");
        }
    }
}

(2)从键盘输入一个表示百分制分数的正整数,请使用switch语句实现按以下规则输出中文分数:
100~90:优 89~80:良 79~70:中
69~60:及格 59~0:不及格 其它:错误

import java.util.Scanner;

public class Java_day03_02 {
    public static void main(String[] args){
        Scanner s = new Scanner(System.in);
        int num = s.nextInt();
        switch (num/10){
            case 0:
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:System.out.println("不及格");break;
            case 6:System.out.println("及格");break;
            case 7:System.out.println("中");break;
            case 8:System.out.println("良");break;
            case 9:
            case 10:System.out.println("优");break;
            default:System.out.println("错误");break;
        }

    }
}

(3)从键盘输入任意三个整数,请使用三元运算符找出这三个整数中的最大值并输出。

import java.util.Scanner;
public class Java_day03_03 {
    public static void main(){
        Scanner a = new Scanner(System.in);
        int q = a.nextInt();
        int w = a.nextInt();
        int e = a.nextInt();
        int max = q>w?q:w;
        max = max<e?e:max;
        System.out.println(max);
    }
}

标签:语句,case,Java,编程,System,运算符,println,日记,out
来源: https://www.cnblogs.com/Machinehe/p/15430290.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有