java学习第二天

本文介绍了Java编程中的变量概念,包括声明、初始化和命名规则,并展示了如何使用运算符进行数学计算。同时,讲解了Scanner类在获取键盘输入中的应用,以及在处理不同类型数据时需要注意的类型转换问题。最后,通过实例展示了如何处理编译错误和类型转换异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

char里面的每一个字符,都有一个对应的数值(每个字符都可以转换成一个整数,这个整数范围是0-65535)
今天目标:

  1. 掌握变量
  2. 掌握运算符

变量:计算机用来存储可变数据内存空间
创建变量的过程:

  1. 确定变量的类型和名字(声明变量)
  2. 给变量赋值(变量的初始化)
public static void main(String[] args){
		byte b1;//声明变量
		
		b1=122;//变量初始化
		System.out.println("第一次赋值:"+b1);//输出b1变量
	
		b1=126;//再次赋值
		System.out.println("第二次赋值:"+b1);//输出b1变量
}

在这里插入图片描述
创建变量时可以将两步写在一起的
格式:数据类型 变量名=变量值;

int i1=185;

不建议多个变量在一起声明
如下

int b1,b2,b3,b4;

变量的命名规则(法律):

  1. 以字母、下划线或$开始
  2. 以字母、数字、下划线、$进行创建变量名

变量的命名规范(道德):

  1. 驼峰命名法:第一个单词以小写字母开始,从第二个单词开始以后的每个单词的首字母都采用大写字母,如startGame
  2. 见名知意:看见变量名,就知道表示的含义, startGame (开始游戏)

使用变量名之前必须经过声明并初始化

int b1,b2,b3,b4;
System.out.print(b1);//报错,没有进行初始化

b5=10;//报错,没有声明变量类型
System.out.print(b5);

使用变量时需要注意的问题

  1. 重复定义变量名
  2. 定义的变量初始化后越界了(赋值的数值不能超过数据类型的范围)
  3. 使用long的数据类型赋值时后面加个L或l。(编译器默认的整数类型是int类型,如果超出int表示的范围就会出错)
  4. 使用float的数据类型赋值时后面加个F或f。(编译器默认为double(双精度)类型)
int a1;
int a1=128;//重复定义
byte b1=128;//越界了,byte最大可表示为127
long lon=125856954L;
double d1=0.1;//不报错
float f1=0.1f;

键盘扫描器:Scanner
作用:可以接受键盘输入的内容,传输到程序中

键盘扫描器的使用步骤:

  1. 导包 import java.util.Scanner;
  2. 创建键盘扫描器:Scanner key=new Scanner(System.in);
  3. 提示用户输入内容
  4. 接受用户输入的内容 数据类型 变量名=key.next数据类型();
  5. 使用完后关闭键盘扫描器 key.close()
    报错出现:java.util.InputMismatchException,说明输入的类型与接受的类型不匹配从而导致报错
package day02;
import java.util.Scanner;//导入的包

public class ClassDemo {
public static void main(String[] args) {
	Scanner key=new Scanner(System.in);//创建键盘扫描器
	System.out.println("请输入一个整数:");//提示输入的数据类型
	int num=key.nextInt();//接受用户输入的内容
	System.out.println("你输入的整数是:"+num);//打印输出用户输出的内容
	clos.key();//关闭键盘扫描器
}
}

小案例:键盘输入两个整数,输出两数之和

public static void main(String[] args) {
		Scanner key=new Scanner(System.in);
		
		System.out.println("请输入第一个整数:");
		int i1=key.nextInt();
		
		System.out.println("请输入第二个整数:");
		int i2=key.nextInt();
		
		int sum=i1+i2;
		System.out.println(i1+"+"+i2+"="+sum);
		key.close();
	}

算术运算符:+ - * / %(取余)
注意:

  1. 当使用“/”时,如果左右两边都是整数,就做相除取整运算
public static void main(String[] args) {
		Scanner key=new Scanner(System.in);
		
		System.out.println("请输入第一个整数:");
		int i1=key.nextInt();
		
		System.out.println("请输入第二个整数:");
		int i2=key.nextInt();
		
		double sum=i1/i2;
		System.out.println(i1+"/"+i2+"="+sum);
		key.close();
	}

在这里插入图片描述

  1. 如果左右两边有任何一边是小数,就做正常的除法运算
public static void main(String[] args) {
		Scanner key=new Scanner(System.in);
		
		System.out.println("请输入第一个整数:");
		int i1=key.nextInt();
		
		System.out.println("请输入第二个整数:");
		double i2=key.nextDouble();//类型变为了double
		
		double sum=i1/i2;
		System.out.println(i1+"/"+i2+"="+sum);
		key.close();
	}

在这里插入图片描述
小面试题:
下面是否可以编译通过

		short s=1;
		short s1=s+s;
		System.out.println(s1);

在这里插入图片描述
对于byte ,short,char而言,当发生运算时,运算的结果会被隐式转换成int类型
java中的类型转换:

  1. 自动转换(隐式类型转换):当小范围的数据向大范围的数据类型时,会发生自动类型转换。例如:byte–>int(自动转换)
byte s1=10;
int s2=s1;//byte的s1自动转换为int类型
  1. 强制类型转换(显示类型转换):当大范围的数据向小范围的数据类型时,需要强制类型转换。例如:int–>byte(强制转换)慎用 每个数据类型的范围不同
int s1=10;
byte s2=(byte)s1;//int的s1强制转换为byte类型

上面的小面试需要怎么改才可以编译通过
s+s后结果的数据类型变为了int类型

  1. 强制转换为byte类型数据
  2. 自动转换更改s1的数据类型
public static void main(String[] args) {
		short s=1;
		short s1=(short) (s+s);//强制转换为byte

		//s+s的结果发生自动转换为了int类型
		//int s1=s+s;
		System.out.println(s1);
	}

强制转换慎用

public static void main(String[] args){
		int s2=130;
		byte s1=(byte)s2;
		System.out.println(s1);
	}

在这里插入图片描述
在这里插入图片描述
课后小作业

  1. 输入一个天数,计算天数包括多少周和剩余多少天数
public static void main(String[] args){
		Scanner key=new Scanner(System.in);
		System.out.println("请输入你要计算的天数:");
		int day=key.nextInt();
		int aweek=day/7;
		int day1=day%7;
		System.out.println(day+"天有"+aweek+"周"+day1+"天");
		key.close();
	}

在这里插入图片描述

  1. 输入圆的半径,计算圆的面积
public static void main(String[] args) {
		Scanner key=new Scanner(System.in);
		System.out.println("请输入要计算圆面积的半径:");
		double r=key.nextDouble();
		double area=r*r*3.14;
		System.out.println("半径为"+r+"圆面积为:"+area);
		key.close();
	}

在这里插入图片描述

  1. 输入四位数的卡号,输出四位数上每位数的和,比如 输入:1234 输出:10
public static void main(String[] args) {
		Scanner key=new Scanner(System.in);
		System.out.println("请输入一个四位数:");
		int number=key.nextInt();
		int a=number/1000;
		int b=number/100%10;
		int c=number%100/10;
		int d=number%10;
		int sum=a+b+c+d;
		System.out.println("该四位数和为:"+sum);
		key.close();
	}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值