java(1)数据类型,运算符,逻辑控制语句以及基本应用

爱吃烤鸡翅的酸菜鱼 2024-09-13 14:05:01 阅读 98

目录

​编辑

 1.前言

2.正文

2.1数据类型与变量

2.1.1字面常量

2.1.2数据类型

2.1.3变量

2.1.3.1整型

2.1.3.2浮点型

2.1.3.3字符型

2.1.3.4布尔型

2.1.4类型转换与类型提升

2.1.4.1字符串的拼接

2.1.4.2整型转字符串

2.1.4.3字符串转整数

2.2运算符

2.2.1算术运算符

2.2.2关系运算符

2.2.3逻辑运算符(关键)

2.2.4位运算符

2.2.5移位运算符

2.2.6条件运算符  

2.3逻辑控制语句

2.3.1分支结构

2.3.2循环结构

3.基础应用

3.1判断素数

3.2判断闰年

3.3打印九九乘法表

3.4返回参数二进制中 1 的个数

3.5猜数字游戏

4.小结​编辑


1.前言

哈喽小伙伴们大家好哦~从今天开始笔者就要开始正式学习java了,基础的语法语言之间都是很类似的,所以基础语法的博客就记录的凝练一些,创作的这些博客也算是一些学习笔记,又相当于给大家做知识分享咯,希望大家一起加油哦!

2.正文

2.1数据类型与变量

2.1.1字面常量

字面常量主要有以下几种,接下来我通过代码和注释给大家一一实现:

<code>public class test1 {

public static void main(String[] args) {

System.out.println(123);//整型常量

System.out.println(12.3);//浮点型常量

System.out.println('a');//字符常量

System.out.println("abc");//字符串常量

System.out.println(true);//布尔常量

}

}

 打印结果如下:

2.1.2数据类型

在java中,共有俩种数据类型,分别是基本数据类型与引用数据类型。这俩大类分类的标准是基本数据类型是Java中预定义的,而引用数据类型是指向内存中的一个对象,以此来区分。

2.1.3变量

变量的创建方法: 数据类型 变量名 = 初始值;(下文代码均有体现)

2.1.3.1整型

整型共包括四种:

字节型:type,占用一个字节,范围-128~127,包装类型为Type短整型:short,占用俩个字节,范围-32768 ~ 32767,包装类型为Short整型:int,占用四个字节,范围-

2^{_{31}}

~

2^{_{31}}

-1,包装类型为Interger长整形:long,占用八个字节,范围-

2^{63}

~

2^{63}

-1,包装类型为Long

其中整型是由符号的,整型默认为int

代码演示:

<code> public static void main(String[] args) {

byte a = 5;

short b = 10;

int c = 15;

long d = 20;

System.out.println(a);

System.out.println(b);

System.out.println(c);

System.out.println(d);

}

 运行结果:

有关这四种类型的互相转换需要特别讲解一下,让我们先来看下面这段代码:

<code>public static void main(String[] args) {

byte a = 10;

byte b = 20;

int c = a + b;

System.out.println(c);

}

该代码段将byte字节型的变量转化为int整型变量,将一个字节的内容转化成四个字节存储的内容,显然没有问题。 

但接下来这段代码如果把进程颠倒过来,事情就发生了转变,请看:

public static void main(String[] args) {

byte a = 10;

int b = 129;

a = (byte)b;

System.out.println(a);

}

打印结果却不是我们想要的129,而是-127。

也许有些同学会疑惑 ,为什么打印出来的不是我们想要的结果呢。原因很简单,因为int作为整型变量占有四个字节,强制转换仅占一个字节byte类型会丢失后面三个字节的内容,从而结果有误。所以在这里,博主建议,非必要尽量避免类型的强制转化,有些错误可能当时没有发生,但这就是埋藏的一颗雷,时刻可能出问题。

 更加详细的类型提升与类型转换在下文还会有讲解。

2.1.3.2浮点型

浮点型包含俩种:

单精度浮点数:float,占四个字节双精度浮点数:double,占八个字节

 代码如下:

<code>public static void main(String[] args) {

double num = 1.1;

System.out.println(num * num);

float f = 12.5F;

System.out.println(f);

}

 运行结果如下:

另外需要注意的点是如果俩个int

2.1.3.3字符型

字符型只有一种char类型,占据俩个字节,包装类型为,接下来展示其具体应用。

<code>public static void main(String[] args) {

char ch1 = 'a';

char ch2 = '高';

System.out.println(ch1);

System.out.println(ch2);

Character c = 'p';

}

2.1.3.4布尔型

布尔型关键字为boolean,范围仅为true和false,而非1和0

public static void main(String[] args) {

boolean b = true;//Boolean

System.out.println(b);

}

2.1.4类型转换与类型提升

2.1.4.1字符串的拼接

如果们想把俩个简单的字符串相连,仅仅只需要+即可,代码如下:

public static void main(String[] args) {

String str = "hello";

String str2 = "word";

System.out.println(str+str2);

System.out.println(str.length());//用于查询字符串长度

System.out.println(str.charAt(0));//用于查询字符串的第n位的字符

}

运行结果如下:

2.1.4.2整型转字符串

将整型转化为字符串有俩种办法:

一是之际利用+" "来实现二是基本数据类型都可以通过String.valueOf()方法转化为字符串表示形式

代码展示如下:

<code>public static void fun() {

int a = 123;

String str = a+"";

System.out.println(str);

System.out.println("========");

String str1 = String.valueOf(a);

System.out.println(str1);

}

2.1.4.3字符串转整数

public static void main(String[] args) {

String str = "123";

int a = Integer.parseInt(str);

System.out.println(a);

}

2.2运算符

2.2.1算术运算符

算术运算符自然包括一些我们熟知的加减乘除模,接下来我进行总结:

加法运算符 (+)

用于将两个数值相加。也可以用于字符串连接。

int a = 10;

int b = 5;

int sum = a + b; // sum = 15

String str = "Hello, " + "World!"; // str = "Hello, World!"

减法运算符 (-)

用于从一个数值中减去另一个数值。

int a = 10;

int b = 5;

int difference = a - b; // difference = 5

乘法运算符 (*)

用于将两个数值相乘。

int a = 10;

int b = 5;

int product = a * b; // product = 50

除法运算符 (/)

用于将一个数值除以另一个数值。结果是一个浮点数,即使两个操作数都是整数。

int a = 10;

int b = 5;

double quotient = (double) a / b; // quotient = 2.0

取模运算符 (%)

用于求两个整数相除的余数。

int a = 10;

int b = 3;

int remainder = a % b; // remainder = 1

自增运算符 (++)

用于将变量的值增加1。可以作为前缀(先增后用)或后缀(先用后增)。

int a = 5;

a++; // 后缀,a = 6

++a; // 前缀,a = 7

自减运算符 (--)

用于将变量的值减少1。可以作为前缀或后缀。

int a = 5;

a--; // 后缀,a = 4

--a; // 前缀,a = 3

以上许多在大部分语言中都类似,一些细微的差别主要区分在细节上。

2.2.2关系运算符

关系运算符用于比较两个值,并返回一个布尔值(truefalse)。以下是Java中的关系运算符及其用法:

等于 (==)

检查两个值是否相等。

int a = 5;

int b = 5;

boolean result = (a == b); // result = true

不等于 (!=)

检查两个值是否不相等。

int a = 5;

int b = 10;

boolean result = (a != b); // result = true

大于 (>)

检查左边的值是否大于右边的值。

int a = 5;

int b = 3;

boolean result = (a > b); // result = true

(大于,小于,大于等于,小于等于类似在这里不一一列举)

2.2.3逻辑运算符(关键)

逻辑与 (&&)

逻辑与运算符用于比较两个布尔表达式,只有当两个表达式都为 true 时,结果才为 true。它是短路运算符,如果第一个表达式为 false,则不会评估第二个表达式。

boolean a = true;

boolean b = false;

boolean result = (a && b); // result = false

逻辑或 (||)

逻辑或运算符用于比较两个布尔表达式,只要有一个表达式为 true,结果就为 true。它也是短路运算符,如果第一个表达式为 true,则不会评估第二个表达式。

boolean a = true;

boolean b = false;

boolean result = (a || b); // result = true

逻辑非 (!)

逻辑非运算符用于反转布尔表达式的值,将 true 转换为 false,将 false 转换为 true

boolean a = true;

boolean result = (!a); // result = false

逻辑异或 (^)

逻辑异或运算符用于比较两个布尔表达式,如果两个表达式不同,则结果为 true。它不是短路运算符,无论第一个表达式的值如何,都会评估第二个表达式。

boolean a = true;

boolean b = false;

boolean result = (a ^ b); // result = true

条件运算符 (?:)

条件运算符也称为三元运算符,它是一种简写的if-else语句,用于在单个表达式中进行条件判断。

int a = 10;

int b = 20;

int max = (a > b) ? a : b; // max = 20

2.2.4位运算符

位与 (&)

对应位都为1时,结果才为1,否则为0。

int a = 12; // 1100

int b = 9; // 1001

int result = a & b; // 1000 (8)

位或 (|)

对应位至少有一个为1时,结果为1,否则为0。

int a = 12; // 1100

int b = 9; // 1001

int result = a | b; // 1101 (13)

位异或 (^)

对应位相同则结果为0,不同则结果为1。

int a = 12; // 1100

int b = 9; // 1001

int result = a ^ b; // 0101 (5)

位非 (~)

反转操作数的每一位,即0变为1,1变为0。

int a = 9; // 1001

int result = ~a; // 0110 (-10)

2.2.5移位运算符

左移 (<<)

将操作数的二进制表示向左移动指定的位数,右边空出的位补0。

int a = 9; // 1001

int result = a << 2; // 100100 (36)

右移 (>>)

将操作数的二进制表示向右移动指定的位数,左边空出的位用符号位填充(对于正数是0,对于负数是1)。

int a = -9; // 11111111111111111111111111110111 (32位补码)

int result = a >> 2; // 11111111111111111111111111111101 (-3)

无符号右移 (>>>)

将操作数的二进制表示向右移动指定的位数,左边空出的位补0,不考虑符号位。

int a = -9; // 11111111111111111111111111110111 (32位补码)

int result = a >>> 2; // 00111111111111111111111111111101 (1073741825)

2.2.6条件运算符  

条件运算符只有一个三目运算符:

表达式为:条件表达式 ? 表达式1 : 表达式2。

这里的“条件表达式”是一个返回布尔值的表达式,如果条件表达式的结果为 true,则整个三目运算符的结果为“表达式1”的值;如果条件表达式的结果为 false,则结果为“表达式2”的值。

int a = 10;

int b = 20;

int max = (a > b) ? a : b; // max = 20,因为 a 不大于 b

2.3逻辑控制语句

2.3.1分支结构

if语句

用于在满足特定条件时执行一段代码。

if (condition) {

// 当条件为true时执行的代码

}

if-else语句

用于在条件为真时执行一段代码,条件为假时执行另一段代码。

if (condition) {

// 当条件为true时执行的代码

} else {

// 当条件为false时执行的代码

}

if-else if-else语句

用于在多个条件之间进行选择,并执行相应的代码块。

if (condition1) {

// 当条件1为true时执行的代码

} else if (condition2) {

// 当条件1为false且条件2为true时执行的代码

} else {

// 当所有条件都不为true时执行的代码

}

switch语句

用于根据变量的值选择执行不同的代码块。部分版本中中,switch语句支持字符串和箭头(->)语法。

switch (expression) {

case value1:

// 当expression的值等于value1时执行的代码

break;

case value2:

// 当expression的值等于value2时执行的代码

break;

default:

// 当expression的值不匹配任何case时执行的代码

}

2.3.2循环结构

for循环

用于已知循环次数的情况。

例如,打印0到9的数字:

for (int i = 0; i < 10; i++) {

System.out.println(i);

}

while循环

用于循环次数未知,但有一个继续执行循环的条件。

例如,当变量i小于10时继续循环:

int i = 0;

while (i < 10) {

System.out.println(i);

i++;

}

do-while循环

类似于while循环,但它至少执行一次循环体,即使条件为假。

例如,至少打印一次变量i的值,然后检查i是否小于10:

int i = 0;

do {

System.out.println(i);

i++;

} while (i < 10);

3.基础应用

以下题目供基础语法训练时使用,仅提供代码

3.1判断素数

import java.util.Scanner;

import java.lang.Math;

public class test1 {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

int n = scanner.nextInt();

int flag = 1;

for(int i = 2;i < Math.sqrt(n);i++){

if(n % i ==0){

System.out.println(n + "不是素数");

flag = 0;

break;

}

}

if(flag==1){

System.out.println(n + "是素数");

}

}

}

3.2判断闰年

import java.util.Scanner;

import java.lang.Math;

public class test1 {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

System.out.println("请输入需要判断的年份");

int n = scanner.nextInt();

if(n % 4 ==0||n % 400 == 0){

System.out.println("该年份为闰年");

}

else{

System.out.println("该年份不是闰年");

}

}

}

3.3打印九九乘法表

import java.util.Scanner;

import java.lang.Math;

public class test1 {

public static void main(String[] args) {

int n = 9;

for(int i = 1;i <= 9;i++){

for(int j = 1;j <= i;j++){

System.out.printf("%d * %d = %d ",i ,j, i*j);

}

System.out.println();

}

}

}

3.4返回参数二进制中 1 的个数

import java.security.DrbgParameters;

import java.util.Scanner;

import java.lang.String;

public class test1 {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

int number = scanner.nextInt();

int ans = 0;

String binaryString = Integer.toBinaryString(number);

char[] str1 = binaryString.toCharArray();

for(int i = 0;i <binaryString.length() ;i++){

if(str1[i] == '1')ans++;

}

System.out.println(ans);

}

}

3.5猜数字游戏

import java.util.Scanner;

import java.lang.String;

import java.util.Random;

public class test1 {

public static void main(String[] args) {

Random random = new Random();

Scanner scanner =new Scanner(System.in);

int min = 1;int max = 100;

int num = random.nextInt(max - min + 1) + min;;

int n = 0;

while(n!=num){

System.out.println("请输入你要猜的数字");

n = scanner.nextInt();

if(n > num){

System.out.println("输入数字大,请重新输入");

continue;

}

if(n < num){

System.out.println("输入数字小,请重新输入");

continue;

}

if(n == num){

System.out.println("恭喜你!猜对了");

break;

}

}

}

}

4.小结

今天的java基础知识分享到这里就结束了,博主也是码了好多字,希望大家多多支持我哦。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。