学习java第二课——变量和数据类型

本文详细介绍了Java中的变量和数据类型,包括变量的定义、命名规则、常用数据类型及其用法,以及变量的声明和赋值。此外,还讲解了Scanner类的使用,如何从用户键盘获取输入数据,以及数据类型的转换规则和算术、关系、逻辑运算符的应用。

变量和数据类型

1.变量

1.内存就是电脑内的数据空间,不同数据存入具有不同内存地址的空间。相互独立。

2.如何找到存入的数据?

找变量名

3.变量命名规则

字,下,美,人,数,骆驼

字:字母

下:下划线

美:美元符号$

人:人民币符号¥

必须是以上开头

后续只能是字,下,美,人,数

数:数字

骆驼:骆驼命名法或者驼峰命名法。开头后面每一个单词的首字母大写。

变量名字有多个单词组成时,第一个单词首字母大写,之后每个单词的首字母大写。

变量名要有意义

取变量名不要用汉语

不能使用关键字

2.java常用数据类型

1.数据类型分为数值与非数值

数值又分为

整型(int)

非整型(double双精度浮点数 folat单精度浮点数)

非数值

char字符型 单个字符

boolean布尔型(true false)

String字符串

 

3.变量声明及使用

1.声明变量:给变量起一个名字个名字 int money

2.赋值:money=1000;

=为将后面的赋值给前面

可以合并为一句话 int money=1000

4.常量

1.不会变的量,常量要全大写。

2.变量前面加上final,变成常量。

final double PAI=3.14

在double PAI=3.14;的前面加上final,让它变成了常量

3.两个字符之间用下划线分隔

final double GOOD_UP=100;

5.Scanner的使用

1.需要给用户开一个通过键盘录入程序的入口

Scanner input = new Scanner(System.in);
//重点

程序键盘需要录入所开的口:Scanner

入口名字input(变量名可以随便改)

但是现在是报错的状态。


需要在class前面写👇

import java.util.*;

这句话意思为上面的Scanner位于java.util这个包里面。相当于导入这个java.util,后面的*意思为把这个包里面的所有东西导入进来。


之后在下面写

String name =input.next();

next为下一个这句的意思为下一个,下一个输入的是需要输出的

//导入一个包

import java.util.*; 
​
// 需要给用户开一个通过键盘录入程序的入口 input
        Scanner input = new Scanner(System.in);
        //使用input获得字符串
        System.out.println("请输入姓名:");
        String name =input.next();

Scanner只能输出字符串不能输出字符。

nextInt可以输出整数,输出整数时,将next变为nextInt。

输入年龄是为整数

System.out.println("请输入年龄:");
        int age =input.nextInt();

将String变为int,next变为nextInt。

输入成绩为小浮点

    System.out.println("请输入成绩:");
        double score = input.nextDouble();

将String变为double,next变为nextDouble。


使用用户键盘录入步骤:

1.引入包import java.util.*;

  1. // 需要给用户开一个通过键盘录入程序的入口 input Scanner input = new Scanner(System.in);

3.使用iinput获取用户键盘录入的数据

字符串

System.out.println("请输入姓名:");
	String name =input.next();

整数

System.out.println("请输入年龄:");
		int age =input.nextInt();

浮点数

System.out.println("请输入成绩:");
	double score = input.nextDouble();

没有nextChar。

6.数据类型的使用

// 数据类型: //数值(整型int 浮点float\double)

// 非数值(字符串String双引号 字符char单引号 布尔型boolean取值true、false)

//除了String之外的数据类型都叫基本数据类型

//String叫做引用数据类型


//浮点数默认是double

double num2=1.0;

float num3=1.0f;

double比float用的广,如果想用float表示浮点数,需要在后面加上f。


int num1 = 10;
double num2 = 9.8;
float num3 = 1.8f;
//当表达式中有一个为double时,整个结果提升为double
//强制类型转换,报错原因,把double赋值给int
int num4=num1-num2

当表达式中有一个为double时,整个结果提升为double

int num4=num1-num2报错

报错原因,把double赋值给int

要把double变成int,在前面加(int)完成一个强制转换

int num4=num1-(int)num2

强制转换结束后,double变为int,小数点后所有被抹除。

强制转化就是把数据类型范围大(double)的变为数据类型小的(int)

自动转换

//自动类型转换 int直接赋值给double
		//本身范围大的赋值给范围小的直接转换
	   num2 = 100;

本身范围大的可以直接赋值给小的

num2 = 100;

7.转换规则

double firstAvg=81.29;//第一次平均分
double secondAvg:  //第二次平均分
int rise=2;
secoundAvg=firstAvg+rise;
System.out.println("第二次的平均分是"+secondAvg)
 

double firstAvg=81.29;给firstAvg赋值一个81.29,因为是小数,所以用double。

double secondAvg:最终要求的式子。

System.out.println("第二次的平均分是"+secondAvg)最终输出的是secondAvg。+secondAvg

int rise=2;是整型

secoundAvg=firstAvg+rise;后面的int整型自动变成double。

8.赋值运算符

=作用赋值右边的值或者表达式赋值给左边,顺序是从右向左。

int rise=2,2赋值给rise

public static void main(String[] args) {
		int num1=8;
		int num2=9;
		System.out.println("交换前:");
		System.out.println("num1:"+num1);
		System.out.println("num2:"+num2);

System.out.println("num1:"+num1);

"双引号"内输出的是字符串本身,外面用+链接的num1输出的是赋的值。

int num3=num1;
		num1=num2;
		num2=num3;
		
		
		System.out.println("交换后:");
		System.out.println("num1:"+num1);
		System.out.println("num2:"+num2);

找一个中间的临时变量num3先储存num1的值

然后再进行交换

9.算数运算符

 int num1 =9;
	 int num2=2;
	 int num3=num1/num2;
	 int num4=num1%num2;
	 System.out.println("num1/num2:"+num3);
	 System.out.println("num1%num2:"+num4);

/除法只要商,%余数取余数。

 int num1 =9; 
System.out.println(++num1);
//num1=num1+1  结果10
	 

++为自加,原本数值+1。

int num2=2; 
 System.out.println(--num2);
//num1=num1-1  结果1

--为自减,原本数值-1。

System.out.println(num1++);//num1=num1+1  
System.out.println(num2--);//num1=num1-1  

++和--可以写在变量或者表达式的后面。

System.out.println(num1++);//num1=num1+1  结果9
System.out.println(num2--);//num1=num1-1  结果2

写在前后是有区别的

++或--,在前,先自加或自减,在运算

++或--,在后,先运算,再自加或自减,会先输出,输出之后再自加或自减,所以输出的是原来的数值。

+=,-=都是一个运算符

 int num1 =9;
 num1 += 2; //在自身的基础上+2之后赋值给num1
    System.out.println(num1);

5%2=1 5/2=2

num1=6 num2=1

10.算数运算符综合应用

import java.util.*;
public static void main(String[] args) {
		//输入一个四位会员卡号,控制台计算会员卡号的各位数,并计算数之和。
		//Scanner 用法先开一个口子
		Scanner input = new Scanner(System.in);
		//输出语句请输入一个四位会员卡号
		System.out.println("请输入一个四位会员卡号:");
		//输入的卡号是整数用int 与nextInt input获得输入的卡号并且输出
		int no =input.nextInt();
		//输出卡号
		System.out.println("会员卡号是:"+no);
	   //8369 取出个十百千的数值
		int num1=no%10;
		int num2=no/10%10;
		int num3=no/100%10;
		int num4=no/1000;
		int num5=num1+num2+num3+num4;
	   //用余10的方法拿到个位
		System.out.println("卡号的个位数:"+num1);
	   //用先除10再对商取余拿到十位
		System.out.println("卡号的十位数:"+num2);
	   //用先除100再对商取余拿到百位
		System.out.println("卡号的百位数"+num3);
		//用除1000的方法拿到千位
		System.out.println("卡号的千位数"+num4);
		System.out.println("会员卡号个位数:"+num1+"十位数:"+num2+"百位数:"+num3+"千位数:"+num4);
		System.out.println("卡号四位总数:"+num5);
 

11.关系运算符

关系表达式的结果为布尔值

==是等于运算符

12.逻辑运算符

逻辑运算符用于连接两个表达式或者两个操作数的

短路后不继续进行,第二个++x不会运算所以第二个式子中X为8+1=9

12.条件运算符

条件?表达式1:表达式

如果条件是true正确的,输出第一个表达式,如果是错误的输出第二个表达式。

import java.util.*;

//判断一个属是否为偶数(能被2整除的数)

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.print("请输入一个非0的数字:");
		int num = input.nextInt();

		String result =(num%2==0)?"偶数":"奇数";
		System.out.println(num+"是"+result);
	}

}

import java.util.*;

	public static void main(String[] args) {
		//输入一个四位会员卡号,控制台计算会员卡号的各位数,并计算数之和,之后根据和的大小计算有没有中奖

		Scanner input = new Scanner(System.in);
	
		System.out.println("请输入一个四位会员卡号:");

		int no =input.nextInt();
		//输出卡号
		System.out.println("会员卡号是:"+no);
		int num1=no%10;
		int num2=no/10%10;
		int num3=no/100%10;
		int num4=no/1000;
		int num5=num1+num2+num3+num4;

		System.out.println("卡号的个位数:"+num1);
	 
		System.out.println("卡号的十位数:"+num2);
	   
		System.out.println("卡号的百位数"+num3);
		
		System.out.println("卡号的千位数"+num4);
		System.out.println("会员卡号个位数:"+num1+"十位数:"+num2+"百位数:"+num3+"千位数:"+num4);
        
		System.out.println("卡号四位总数:"+num5);
		
		String result=(num5>10)?"您中奖了":"您没中奖";
		System.out.println("卡号为"+no+"的会员"+result);
	}
	

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值