Java基本程序结构设计

Java基本程序结构设计包括数据类型,运算符和程序流程控制。

1. 注释,关键字,标识符

  1. 注释
    作用:提高程序的可读性(编译器不会编译)
    常见类型:(1)单行注释:用 “ // "作为注释标志。用于注释单行代码
    (2)多行注释:用 “ /* ”开头和用 “/”结尾。用于注释多行代码
    (3)文档注释:用 “ /
    ”来头和用 “/ ”,用于注释文档
  2. 关键字
    Java语言内部定义的标识符,供内部使用,比如说:calss,static,this,等等。
  3. 标识符
    作用:用来命名变量,方法,类名等等。
    要求:(1)通常以字母,下划线__,美元符号¥开头。不能包含 @、%、空格等其它特殊字符,不能以数字开头。譬如:123name 就是不合法滴;
    (2)标识符的其他部分可以用数字,字母,下划线,美元符号等
    标志变量和方法的标识符采用驼峰法则:第一个字母小写,第二个字母大写,如eatFood();
    (3)大小写敏感。长度无限制。关键字不可作为标识符。

2 变量和常量

  1. 变量
    定义:代表可操作的存储空间,空间位置确定,值不确定。可以用停车位类比。
    命名法则:由字母、数字、下划线(_)、美元符($)组成,但是不包括@、%、空格等,但是开头不能为数字。
    组成要素:变量名,变量类型,作用域。如 int a =4;
    类型:局部变量,成员变量,静态变量
    在一个类中,如果一个变量能够用来描述一个类的属性,那就定义为成员变量,否则,它就应该定义为局部变量。而如果一个变量在全局中都能使用(某个内容是被所有对象所共享),那么我们就可以把这个变量用static来修饰,即为静态变量。
    在这里插入图片描述

  2. 常量
    它的值被设定后,在程序运行过程中不允许改变,一般利用final修饰。
    语法:final 常量名 = 值
    常量名一般使用大写字符,
    如:final int SCORE =100;

3. 数据类型

  1. 数据类型结构图


2. 基本数据表示范围
<1>4种整型,int型(4字节),short型(2字节),long(8字节),byte(1字节)。
如:int a=4;short b=1;byte c=2;
<2>浮点型,float型(4字节),double型(8字节)。
如:float d=0.1f;(float的定义后面必须加f),double d2 = 10.9d(double的定义后面必须加d)
<3>char型,” A”含有A的字符串,‘A’ 字符常量A.
如: char c1 = ‘a’;
<4>布尔型,Boolean,faluse,0. true,1.
如:Boolean start=true;
(一个字节有8个bit,)
在这里插入图片描述
定义方式:
在这里插入图片描述

  • 类型转换
    两种转换方式:自动转换或强制转换
  • 自动类型转换 : 字节数小的可以转换为字节数大的,即隐式转换
    目标类型能与源类型兼容,如 double 型兼容 int 型;
    目标类型大于源类型,如 double 类型长度为 8 字节, int 类型为 4 字节,因此 double 类型的变量里直接可以存放 int 类型的数据 。
  • 强制类型转换
    容易使得数据精度丢失
    强制类型转换的语法是 (数据类型)数值
    double avg1=75.8;
    int avg2=(int)avg1;

在这里插入图片描述

4. 运算符

Java运算符主要包括算术,逻辑,赋值,扩展,关系,逻辑,条件,字符串,位运算符等,这些运算符的作用用于表示不同数值类型之间的相互作用,比如说算术运算符的加减乘除求余等,关系运算符的大于小于,逻辑运算符的与或非等。

  • 算术运算符

在这里插入图片描述

  • 整数运算中,如果两个操作数有一个为long,则结果为long;若没有long型数值,结果为int,即使操作数的类型为short或byte。(与其字节数有关)

  • 浮点运算,两个操作数有一个为double时,则结果为double;只有当两个操作数全为float时,则结果为float。(与其字节数有关)

  • 求余运算,余数的正负与左操作数相同。例:7%3=1;-7%3=-1

  • 自增自减运算,B++和B–先赋值后加减,++B和–B先加减后赋。

  • 赋值运算符
    在这里插入图片描述

  • 关系运算符
    在这里插入图片描述

  • 输出的结果为布尔型

  • 逻辑运算符
    在这里插入图片描述

在这里插入图片描述

  • 条件运算符
    在这里插入图片描述
    例如:x?y:z, x为布尔类型值,若x为真,则返回为y值,若x为假则返回为z。
    1>3?2:1结果为:1, 5>4?2:1结果为2.
  • 字符串运算符
    字符串运算符: + 可以连接不同的字符串
  • 位运算符
    在这里插入图片描述

5. 流程控制语句

用来控制流程中语句执行的顺序,一般包括顺序结构,选择结构和循环结构,,类似于建筑中的混凝土,

1. 顺序结构
先执行a,在执行b
2. 选择结构
用于在给定的条件,根据判断的结果来控制程序的流程。

  • 单选择结构
    if 型

if(条件表达式){
执行语句;
}

if–else型

if(关系表达式) {
语句体1;
}else {
语句体2;
}
在这里插入图片描述

if…else if…else语句

if(条件表达式){
执行语句;
}else if(条件表达式){ 选择第一个满足条件的分支语句为分支入口;
执行语句;
}else{
执行语句;
}

  • 多选择结构

switch,用于多值得判断

switch(表达式)
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;

default:
语句体n+1;
break;
}

在这里插入图片描述

3. 循环结构
在学习循环语句时,最重要的就是发现流程的规律,然后再用程序设计语言将该规律描述出来,从来实现程序要求的流程。

  • for循环
    for关键字的意思是“当…的时候”,是实际开发中比较常用的循环语句,

for(初始化语句;循环条件;迭代语句){
语句块;
}

在这里插入图片描述

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

    System.out.println(i);

    }
/*
    则该语句的执行流程为:

    1、 执行int i = 0;

    2、 判断i<10,如果条件不成立则结束,否则继续执行下一步

    3、 执行System.out.println(i);

    4、 执行i++

    5、 跳转到步骤2继续执行
 */
  • while do型
    while关键字的中文意思是“当……的时候”,也就是当条件成立时循环执行对应的代码。
    执行流程:在执行while语句时,首先判断循环条件,如果循环条件为false,则直接执行while语句后续的代码,如果循环条件为true,则执行循环体代码,然后再判断循环条件,一直到循环条件不成立为止。
    while(判断条件)
     {     
        执行语句   
             }

在这里插入图片描述

  int i = 0;

    while(i < 10){

    System.out.println(i); //输出变量的值

    i++; //变量的值增加1

    }
/*
    其执行流程为:

    1、 执行int I = 0;

    2、 判断i<10是否成立,如果不成立则结束,否则执行下一步

    3、 输出变量i的值

    4、 i的值增加1

    5、 跳转到步骤2继续执行
 */

- do while型

do {
语句块;
}while(条件表达式);

在这里插入图片描述

注:

  • 流程控制语句中,break强行跳出循环,不执行循环中的剩余语句,continue用于终止本次循环,即系执行下一次循环。

    如果将Java语言编程比作盖房子的话,那么这部分的内容就好比会水泥和混凝土,所涉及到的是Java编程中常用到的知识点,换句话来说,就是Java编程世界里的常识,比如说如何定义一个常量,怎么样定义一个标识符,都涉及哪些数据类型,数据之间怎么运算当设计分支的时候如何控制流程,等等等等。盖房子需要将混凝土水泥作为最基本的材料,如果连材料都没有,再伟大的建筑师也没办法盖一座大楼,同样的道理,Java语言程序会应用到上面的基础知识,包括数据类型,运算符和流程控制结构三大部分,数据类型说明在Java程序中常用的数据有哪些,怎么样定义,运算符用于说明这些数据的基本操作是什么?怎么样来操作这些数据,流程控制语句用来说明当一些基本的数据和操作方式之后,每个语句之间的逻辑结构是怎么样子的,从前向后的顺序结构,还是有选择条件的选择结构,亦或是主要在某一个条件下执行的循环结构。

**

常见程序实例

**
输出乘法表:

/*
 * "实战——九九乘法口诀表"*/
 public class Program {
	public static void main(String [] args) {
		System.out.println("九九乘法口诀表:");
		for (int i=1;i<=9;i++){
			for(int j=1;j<=i;j++){
				System.out.print(j+"*"+i+"="+j*i+"\t");	
			}
//			注意print与println的区别
			System.out.print("\n");	
//			System.out.println();
		}
	}
}

输出星座

import java.util.Scanner;
public class Program {
	public static void main(String [] args) {
		System.out.println("请输入您的出生日期 :");
		Scanner sc=new Scanner(System.in);
		int monthday=sc.nextInt();
		int month=monthday/100;
		int day=monthday%100;
		String xingzuo="";	//保存字符串
		switch (month) {
			case 1:
				xingzuo=day<21?"摩羯座":"水瓶座";
				break;
			case 2:
				xingzuo=day<20?"水瓶座":"双鱼座";
				break;
			case 3:
				xingzuo=day<21?"双鱼座":"白羊座";
				break;
			case 4:
				xingzuo=day<21?"白羊座":"金牛座";
				break;
			case 5:
				xingzuo=day<22?"金牛座":"双子座";
				break;
			case 6:
				xingzuo=day<22?"双子座":"巨蟹座";
				break;
			case 7:
				xingzuo=day<23?"狮子座":"狮子座";
				break;
			case 8:
				xingzuo=day<24?"摩羯座":"处女座";
				break;
			case 9:
				xingzuo=day<24?"处女座":"天秤座";
				break;
			case 10:
				xingzuo=day<24?"天秤座":"天蝎座";
				break;
			case 11:
				xingzuo=day<23?"天蝎座":"射手座";
				break;
			case 12:
				xingzuo=day<22?"射手座":"摩羯座";
				break;
			default:
				break;
		}
		System.out.println("您的星座是"+xingzuo);
	}
}

实现阶乘

/**
 * 求1+2!+3!+...+10!的和
 * @author Vivinia
 *
 */
public class factorial {
	public static void main(String args[]) {
		long sum=0,num=1;           //sum用于加和,num作为每一个数阶乘后的结果
		for(int i=1;i<=10;i++) {
			num*=i;                 //num始终保留上一次阶乘的结果,所以只需要乘i
			sum+=num;               //每次阶乘后相加
		}
		System.out.println("1+2!+3!+...+20!="+sum);
	}
}

/**
 * 1~10阶乘求和
 */
public class Factorial {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 1; i <= 10; i++) {
            sum += m1(i);
            //sum += m2(i);

        }
        System.out.println(sum);
    }

    //求阶乘 方法一
    private static int m1(int n) {
        if (n == 1) return 1;
        return n *= m1(n - 1);
    }

    //求阶乘 方法二
    public static int m2(int n) {
        if (n == 1) {
            return 1;
        }
        int i = 1;
        int res = 1;
        while (i <= n) {
            res *= i;
            i++;
        }
        return res;
    }
}

1+2+3+4+…+100

public class Tset  { 
	public static void main(String[] args) {
		int sum = 0;
		for(int i = 1;i <= 100; i++){
			sum += i;
		}		
		System.out.println("1+2+3+4+5+......+99+100的和为:"+sum);	
	} 
}

猜你喜欢

转载自blog.csdn.net/weixin_41792162/article/details/83211903