类型转换、运算符、类型转换、if、switch

目录

一、类型转换

1.转换规则以及强转隐患

二、运算符

 1.算术运算符

2.赋值运算符

3.关系运算符

4.关系运算符

5.三目运算符

三、类型提升与控制台录入

1.类型提升

2.控制台录入

四、IF分支

1.IF单分支

2.IF双分支

3.IF多分支

4.IF的嵌套

五、switch分支

六、练习与思考


一、类型转换

1.转换规则以及强转隐患

低到高:byte-short-int-long-float-double,默认转

高到低:double-float-long-int-short-byte,强转

示例:

public class TypeChange{
	public static void main(String[] args){
		byte a = 6;
		short b =a;
		int c = b;
		long d = c;
		float e = d;
		double f = e;//由低到高是默认转
		System.out.println(d);
		System.out.println(f);
		long dd = (long)f;//由高到低是强转,注意这里的格式右边赋予的值要有“(数据类型)”
		short bb = (short)c;//与要转的目标类型一致
		System.out.println(dd);
		System.out.println(bb);
	}
}

强转隐患

(1)由高到低数据过大就会截断(注意:这里与day02里各种数据类型的范围有关系)

(2)小数转整数会取整

(3)字符与数据互转,数据完整(char的取值范围为65535)

(4)boolean只有true与false,boolean类型不能互转

示例:

public class TypeChange1{
	public static void main(String[] args){
		byte a = (byte)496;//超出了byte的范围,产生截断
		System.out.println(a);
		int b = (int)2.8;//小数转整数,取整
		System.out.println(b);
		char c = 97;
		int d = (int)c;
		System.out.println(d);
		char f = 97;//字符所赋予的值可以转换为整数
		int e =f;
		System.out.println(e);
	}
}

二、运算符

 1.算术运算符

(1)+、-、*、/、%、++、--

(2)i++:先输出i,后i+1       i--:先输出i,后i-1    ++i:先使得赋值的i+1后,再输出i   --i:先使得赋值的i-1后,再输出i

示例:

public class Suanshu{
	public static void main(String[] args){
		int a = 5+1;
		System.out.println(a);//6
        System.out.println(a/2);//3
        System.out.println(a*2);//12
		System.out.println(++a);//7
		System.out.println(a--);//7
		System.out.println(--a);//5//特别注意,这里是个易错点
	}
}

2.赋值运算符

(1)基本赋值:=

(2)复合赋值:+=、-=、*=、/=、%=

示例:

public class Fuzhi{
	public static void main(String[] args){
		int a = 6;
		System.out.println(a);//6
		a -=3;//a=a-3
		System.out.println(a);//3
		a %=3;//a=a/3的余数
		System.out.println(a);//0
	}
}

3.关系运算符

符号:>、>=、<、<=、==、!=

结果:结果为true或者false

示例:

public class Guanxi{
	public static void main(String[] args){
		int a = 6;
		System.out.println(6>3);
		System.out.println(6>=3);
		System.out.println(6<3);
		System.out.println(6<=3);
		System.out.println(6!=3);
	}
}

4.关系运算符

符号:&&、||、!、&、|

&&:两边都为true,则为true;第一位为false,则不会执行第二位

||:一边为true,则为true;第一位为true,则不会执行第二位

!:取反,结果为true,输出为false

&:第一位为false,仍然执行第二位

|:第一位为true,仍然会执行第二位

示例:

public class Guanxi2{
	public static void main(String[] args){
		boolean a=true;
		System.out.println(true&&(a=false));//false
		System.out.println(false&(a=false));//false
		System.out.println(a);
		System.out.println(true||false);//true
		System.out.println(true|(a=false));//true
		System.out.println(a);//false,注意这里的结果与上一行a=false的关系
	}
}

5.三目运算符

概念:(关系表达式)?操作数1:操作数2

关系表达式成立就是操作数1,否则为操作数2

示例:

public class Sanmu{
	public static void main(String[] args){
	int d = 6;
	int e = 7;
	int max = (d<e)?e:d;
	int min	= (e<d)?e:d;
	System.out.println("最大值:"+max);
	System.out.println("最小值:"+min);
	}
}

三、类型提升与控制台录入

1.类型提升

注意事项:

(1)结果为最高的类型

(2)任意类型与字符串拼接都市字符串

2.控制台录入

概念:可以从DOS中输入内容,在程序中接收,是面向对象的操作,要记住它的步骤(这一部分要牢记手动输入内容)

(1)导包

import java.util.Scanner;

(2)实例化控制台对象

Scanner sc = new Scanner(System,in);

System.out.println("请输入内容")

string a = sc.nextString();//int a = sc.nextInt();//double a = sc.nextDouble();//char a = sc.next().charAt()//注意最后char的部分

(3)调用方法获取值

System.out.println(a);

四、IF分支

1.IF单分支

示例:

import java.util.Scanner;
public class If{
	public static void main(String[] args){
		    System.out.print("请输入百分制成绩:");//从控制台手动输入数字
		    Scanner sc = new Scanner(System.in);
		    int score = sc.nextInt();
		    if(score>=60){
			System.out.println("成绩合格");
            }//如果输入的条件符号if()里的则执行输出,如果不符合条件则不执行
    }
}

2.IF双分支

示例:

import java.util.Scanner;
public class If{
	public static void main(String[] args){
		    System.out.print("请输入百分制成绩:");//从控制台手动输入数字
		    Scanner sc = new Scanner(System.in);
		    int score = sc.nextInt();
		    if(score>=60){
			    System.out.println("成绩合格");
            }else{
                 System.out.println("成绩不合格");
            }
    }
}

3.IF多分支

示例:

import java.util.Scanner;
public class If{
	public static void main(String[] args){
		System.out.print("请输入百分制成绩:");
		Scanner sc = new Scanner(System.in);
		int score = sc.nextInt();
		if(score>=90&&score<=100){
			System.out.println("优秀");
		}else if(score>=80&&score<=90){
			System.out.println("良好");
		}else if(score>=70&&score<=80){
			System.out.println("一般");
		}else if(score>=60&&score<=70){
			System.out.println("及格");
		}else if(score<=60){
			System.out.println("不及格");
		}
			
	}
}

4.IF的嵌套

if语句中又包含if

注意事项:先执行外层的if语句,在执行内层的if

示例:

import java.util.Scanner;
public class CharType {
    public static void main(String[] args){
      System.out.print("请输入百分制成绩:");
      Scanner sc = new Scanner(System.in);
      int score = sc.nextInt();
      if(0<=score&&score<=100) {
          if(score>=90&&score<=100){
              System.out.println("优秀");
          }else if(score>=80&&score<=90){
              System.out.println("良好");
          }else if(score>=70&&score<=80){
              System.out.println("一般");
          }else if(score>=60&&score<=70){
              System.out.println("及格");
          }else {
              System.out.println("不及格");
          }/*注意:这里在最后一个else{}结尾要有一个括号表示内层的if循环语句结束,往往最后一个条 
              件可不用条件说明,剩下的就是*/
       }else {//注意:内层循环结束后,要有一个外层循环的else{}结束外层的if语句
          System.out.println("请输入正确的数字"); 
       }
    }
}

五、switch分支

示例:

import java.util.Scanner;
public class Switch{
	public static void main(String[] args){
		System.out.println("请输入江南四大才子姓名:");
		Scanner sc = new Scanner(System.in);
		String name = sc.next();
		switch(name){
			case "唐伯虎"://值:byte、short、int、char、String
				System.out.println("点秋香");
				break;
			case "祝枝山"://跳出switch
				System.out.println("画家");
				break;
			case "文征明":
				System.out.println("书法");
				break;
			case "徐征卿":
				System.out.println("散文家");
				break;
			default:/*注意:类似if分支里的else,如果前面的都不满足,则执行default里面的内容
                     切记if多、双分支以及switch一定要加else与break跳出循环*/
				System.out.println("你的输入有误~");
		}
	}
}

六、练习与思考

输入会员积分与购物金额,根据积分的不同享受不同的折扣,并输出结账金额

import java.util.Scanner;
public class Homework4{
	public static void main(String[] args){
		System.out.println("请输入会员积分:");
		System.out.println("请输入购物金额:");
		Scanner sc = new Scanner(System.in);//这里的new后面没有.是空格
		double jifen = sc.nextDouble();
		double jie = sc.nextDouble();
			if(jifen<2000){
				System.out.println("结账金额:"+jie*0.9);
			}else if(jifen<4000){
				System.out.println("结账金额:"+jie*0.8);
			}else if(jifen<8000){
				System.out.println("结账金额"+jie*0.7);
			}else if(jifen>8000){
				System.out.println("结账金额:"+jie*0.6);
			}

	}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值