java 基本程序设计结构讲解

Posted 千斗五十铃呐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 基本程序设计结构讲解相关的知识,希望对你有一定的参考价值。


  • java基本数据类型:
基本数据类型
整型byte, short, int, long

浮点类型

float, double
char 类型char
boolean 类型boolean

整型表示的是没有小数部分的数值,可以是负数;浮点型表示的是有小数部分的数值,也可以是负数;char 表示的是单个字符;boolean 类型有两个值,true 和 false,用来判断逻辑条件

注意:

长整型 long 后面必须有 l 或者 L ,否则在 int 取值范围内是 int (推荐写大写的 L,小写的不容易分辨是 1 还是 l)

float 类型后面需要带 F 或 f ,否则默认为 double

数据类型可以相互转换,boolean 不可以转换,但有时会有信息丢失

byte < short(char) < int < long

int < double         float < double (这些从小到大的转换不会损失信息)

int < float      long < float      long < double (这些转换会有精度损失)

小到大会自动转换,也可以使用强制转换,在数值前面加(类型)

  • 变量的声明与初始化

我们要用到上面的几种类型需要先声明和初始化 (下面代码 // 后为注释,不会被执行)

int A; // 这是对 A 进行声明
A = 2; // 这是对 A 进行初始化,初始化 A 为 2
int B = 2; // 声明和初始化同时进行
long C = 3; // 此时 C 实际是 int 类型
long D = 4L; // 此时 D 为 long 类型
float E = 5.2F; // 此时 E 为 float 类型,如果没有 F 则是 double
double M = (float)2.3; // 将 double 类型的 M 转换为 float
  • 运算符

算术运算符
符号
+加号
-减号
*
/除(参与  / 运算的 2 个数是整数的时候表示整数除法,否则是浮点除法)
%取模(整数的求余操作)
逻辑运算符
&&逻辑与(全部都是 true 为 true,否则为 false)
||逻辑或(一个是 true 就是 true,全为 false 才是 false)
逻辑非(取反 true 为 false,false 为 true)
关系运算符
>, <, ==分别为 大于 , 小于, 等于(比较数值)
>=, <=, !=分别为 大于等于, 小于等于, 不等于(比较数值)
===, !==分别为 全等于, 不全等于 (比较数值的类型和大小
自增自减以及复合赋值运算符,三元运算符

++

自增 1 
--自减 1
+=, -=,*=, /=, %= a += 1;等价于 a = a + 1;
?=布尔表达式 ? 值 1 :值2(入锅布尔表达式为 true 返回值 1,false 返回值 2

位运算符
<<, >>, >>>左移,右移,无符号右移运算符(向左向右移动  n 位,即乘以 2 的 n 次方,无符号右移则省去符号)
^位异或(相同为false,不同为true)

&

位与
|位或
~|位非

注意:逻辑运算符和关系运算符返回的都是布尔值,即 true 或 false

           运算符有优先级,自增自减在使用时数值前后也会有区别

运算符优先级
[] . () (方法调用)从左向右
! ` ++ -- +(一元运算) - (一元运算) (强制转换) new从右向左
* / %从左向右
+ -从左向右
<< >> >>>从左向右
<, <=, >, >=, instanceof从左向右
==, !=从左向右
&从左向右
^从左向右
|从左向右
&&从左向右
||从左向右
?:从右向左
=, +=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=, >>>=从右向左

注意:从右向左是右边先运算

a += b += c; // 这里为 a += (b += c);
// 位运算
int I = 3, J;
J = I << 2; // 这里 J 为 3 * (2 ^ 2) 等于 12
  • 字符串

java 中字符串有简单的方式,用 String 定义,为引用数据类型,与基本类型使用方式一样,同时有一些方法对字符串进行拼接,比较等,也可以用 “+” 号连接。如

String a = "hello,world";
String b = "fun";
String c = a + b; // 将 a 和  b 连接起来
String d = c.substring(0, 4); // 取 c 的前 1 到 4 个
System.out.println(c); // 结果为 hello,world;
System.out.println(d); // 结果为 hell;
  • 流程控制

首先在 java 中,不允许在一个作用域内定义相同的变量!如

public static void main (String[] args) 
int a = 2;
for (;;) 
    int a = 2; // 编译器会报错
    a++;
    

if else 语句

if(布尔表达式) else if (布尔表达式) else 。如果 括号内为 true 执行 if后第一个花括号,满足 else if 则同理,否则执行 else 后。如果只有 2 个就舍去 else if,无限个就 else if 无限写 (不推荐,一般只用 if 或 if else)

循环:while 循环,do while 循环,for 循环。

while 循环结构为 while (布尔表达式) 循环体

do while 循环为 do while(布尔表达式)

for 循环为 for (表达式1;布尔表达式;迭代条件) 循环体

for 循环还有一个增强 for 循环 for each 循环。如果需要 for 循环内的所有元素 for each 更简洁,但不需要就只能使用 for 循环

注意:while循环是先判断在执行,do while 是先执行在判断(后者至少会被执行一次),for 循环括号里的语句由分号隔开

嵌套循环

即循环体中有循环。如

for (int a = 1; a < 5; a++) 
    for (int b = 1; b < 4; b++) 
    int c = a + b;
    

可以一直嵌套下去(不推荐,毕竟用的少)

continue 和 break 的运用

continue 指跳过这一次循环,执行下一步

break 指跳出本层循环,如果有嵌套需要多个break

循环的结束

布尔表达式为 false 或者 遇到 break 语句(continue 标签和 return 不在讨论范围内)

switch 语句

多个选择时用 if else 会很慢 所以有 switch 语句

switch 用法

switch(标签)
    case 标签1:……;break;
    case 标签2:……;break;
    case 标签3:……;break;
    default :……;break;

注意:switch 具有穿透性,每一个 case 后都需要 break 来中断,否则会执行该标签和后面标签的语句直到完或遇到 break

  • 数组

数据存储相同类型的序列,并使用一个名字命名,进行统一管理。是一种数据结构。

数组需要数组名,数组中的元素类型,下标,长度。

数组属于引用数据类型,但数组中的元素可以是任何数据类型。数组在内存中是连续的一块空间。数组长度一旦确定不能改变。

数组的定义可以分为静态定义,动态定义,但不能同时定义。数组的声明后有默认的初始化值。数组的下标从 0 开始,数组的遍历可以用循环遍历

数组类型的初始化值
整型:byte, short, int, long

0

浮点型:float, double0.0
字符型:char0 或 '\\u0000' (不是数字 0 ,是ASCLL码 0)
boolean 型false(在计算机里 0 代表的是 false)
引用数据类型null

int c[] = new int[3]; // 动态定义,这种写法 [] 在声明的名后,正确但不推荐,
 // 下面的是标准的写法
int[] b = new int1, 2, 3; // 静态定义
int[] c = new int[4]; // 动态定义,此时是整型,初始化值为 0 
for (int i = 0; i < a.length; a++) 
    System.out.println(a[i]); // 遍历数组 a,并输出每一个元素


数组还分多维数组,即大于等于 2 的维度的数组,大多数情况下使用多维数组使用的是二维数组。二维数组即一维数组作为另外的一维数组的元素而形成的数组。多维同理。和一维数组一样可以调用二维数组中的元素,也是使用下标的方法,因为二维数组是一维数组为元素而形成的数组,所以一维数组的长度指有几个元素。多维数组的遍历需要嵌套循环,几维就用几个循环,同时它们为嵌套循环

int[][] a = new int[][]1, 2, 3, 4, 5, 6,7, 8, 9; // 静态定义二维数组
int[][] b = new int[3][4]; // 动态定义二维数组方法一
int[][] c = new int[3][]; // 方法二:后面的 [] 里不写数字,但前面的必须写!
System.out.println(a[0][0]); // 输出为 1
System.out.println(a[1][2]); // 输出为 6
System.out.println(b.length); // 输出结果为 3,即前面的 [] 里的数字
for (int i = 0; i < a.length; i++) 
    for (int j = 0; j < a[i].length; j++) 
    System.out.print(a[i][j]); // 输出第一个元素中的所有元素,即输出 123
    


恭喜你,看完了这篇博客并学会了 java 基本程序设计,觉得不错记得 3 连哦

以上是关于java 基本程序设计结构讲解的主要内容,如果未能解决你的问题,请参考以下文章

Java程序基本概念

Java程序设计的基本结构 - 循环结构

java基础讲解03-----java的结构

Java基本语法--程序流程控制

了解JAVA的基本程序设计结构

J3. Java基本程序设计结构之关键字与标识符