java入门基础学习(二)

文章目录

    • (一)语句
    • (二)随机数Random
    • (三)数组
    • (四)java内存空间栈和堆
    • (五)方法/函数
    • (六)形参和实参
    • 习题:


(一)语句

语句(程序流程空控制)
顺序(从上到下依次执行)
选择(if,switch)
循环(for,while)

选择if:
		格式1:if(关系表达式){
     
				语句1
			}
		注意:{
     }表示语句的执行范围,{
     }可以省略不写,不写时会把,if下面的一行代码当做语句体
		格式2:if(关系表达式){
     
				语句1
			}else{
     
				语句2
			}
			格式3:if(关系表达式1){
     
				语句1
			}else if(关系表达式2){
     
				语句2
			}...else{
     
				语句n
			}
注意:else可以忽略不写
			
switch:专门用于做等值判断
			格式:switch(表达式){
     
					case1:
						语句
						break;
					case2:
						语句
						break;
						.
						.
						.
					default:
						语句
						break;
				}
注意:值不能相同,default可以不写,default中的break也可以不写
	 case判断成立,而没有break,会向下继续执行(但是不会再次执行case),直到遇到break或执行结束
						
循环
		while:
			格式:完整语句格式:
					 * 初始化语句
					 * while(条件表达式){
     
					 * 循环语句;
					 * 条件控制语句;
					 * }
					 * 初始化语句(定义变量):循环结构什么时候开始,也用于记录循环次数(一条或多条)
					 * 条件判断语句:决定了循环什么时候结束(结果为boolean的表达式)
					 * 循环语句:循环结构中反复执行的事情(任意语句)
					 * 条件控制语句:通过改变变量的值来控制循环次数(常见操作i++,i--)
		例如:循环输出5次HelloWorld
			int i=1;
			while(i<=5){
     
				System.out.println("HelloWorld");
				i++;
			}
		do_while
			完整格式:初始化语句
					 do{
     
					 	语句体
					 	条件控制
					 }while(关系表达式);
注意:do-while 无论关系表达式结果是true还是false 都会首先执行一次
		for:
			格式: for(初始化语句;条件判断语句;条件控制语句){
     
					    循环体;
					 }
			例如:for(int i=1;i<=5;i++){
     
					System.out.println("HelloWorld");
				}
		死循环的写法:
				1.while(true){
     }
				2.do{
     }while(true)
				3.for(;;){
     }
		嵌套语句:
			语句之中还有语句
			如何保证一个语句的完整,通过{
     }实现,{
     }表示了当前语句的完整执行
			for循环嵌套
			练习:直角在右上方的 
				 99乘法表
				 菱形
		流程控制语句:break(结束)continue(跳出)
				break:表示结束当前语句
				continue:跳出当前执行的某次循环,然后执行下一次

(二)随机数Random

随机产生一个数字
使用方式类似于Scanner
1.导包
import java.util.Random
导包代码必须出现在类定义之外
2.创建对象
Random r=new Random();
只有r是变量名称可以发生改变,别的不允许改变
3.接收数据
int i =r.nextInt(10);//随机数产生的范围 0~10 包括0不包括10
只有变量名i可以发生改变,r是第二步中的变量名,别的不允许改变

(三)数组

存储多个相同数据类型的数据,数组长度不可变

定义格式1:数据类型[] 变量名;
定义格式2:数据类型 变量名[];

动态初始化:只指定长度大小,有系统分配默认值
	格式:数据类型[] 变量名=new 数据类型[长度大小];
	例如:int[] arr=new int[5];
	
静态初始化时指定每个数组元素的初始值,由系统决定数组长度
    格式:数据类型[] 变量名=new 数据类型[]{
     数据1,数据2...数据n};
 	例如:    int[] arr=new int[]{
     1,2,3,4,5};
 	可以简化为:数据类型[] 变量名={
     数据1,数据2...数据n};
 	注意:简化写法中使用的是大括号
 	例如:    int[] arr={
     1,2,3,4,5,6,7,8,9,10};
	
注意:int默认值为0 double默认值为0.0 String默认值为null

索引(下标):数组中元素排列的方式
	1.索引从0开始
	2.连续的
	3.每次加1
	
元素访问:
	1.访问数组
	2.访问数组中索引
	格式:数组的名称[索引]
	
数组常见问题:
	1.下标越界
	2.空指针异常

(四)java内存空间栈和堆

数组:int[] arr=new int[10];
new int[10]在堆中开辟大小为10的空间,然后生成一个地址值来标识当前开辟空间的所在位置,把这个地址值赋值给栈中的int[] arr。

(五)方法/函数

把一些代码块(代码结合体)进行封装,可以方便的进行多次使用
	方法定义格式:public static void 方法名称(){
     
			封装的代码
		 }
	注意:方法定义在main方法之外
	方法调用格式:方法名称();
	注意:方法调用在main方法和其他方法之中
	参数:
		单个参数
			格式:public static void 方法名称(数据类型 变量名){
     
			封装的代码
			 }
		多个参数:
			格式:public static void 方法名称(数据类型1 变量名1,数据类型2 变量名2...){
     
				封装的代码
				 }
	有参方法的调用:方法名称(参数)
		注意:1.调用时,实参可以给一个表达式或具体值,
			 2.实参的数据类型要个方法定义中形参的数据类型保持一致
			 3.调用时,所给的实参个数要和定义时的形参个数保持一致
		     4.方法调用时给的实参名称,不会影响方法定义上的形参名称

(六)形参和实参

形参和实参:
形参:形式是的参数,没有具体的值,在方法定义之上
实参:具体的值,实际存在的值或变量,在方法调用之上

习题:

一、填空题
1.Java语言规定标识符由字母、下划线、美元符号和数字组成,并且第一个字符不能是 数字 。
2.Java中整型变量有byte、short、int和long四种,不同类型的整数变量在内存中分配的字节数不同,数值范围也不同。对于int型变量,内存分配 4 个字节。
3.在Java中浮点型变量有float和double两种,对于float型变量,内存分配4个字节,尾数可精确到7位有效数字,对于double型变量,内存分配 8 个字节。
4.char c=’a’;System.out.println(c+1);运行结果为: 98 。
5.__&&__是短路与运算符,如果左侧表达式的计算结果是false,右侧表达式将不再进行计算。

6.下面的语句是声明一个变量并赋值:boolean b1=5!=8; b1的值是__true_____。
7.使用位运算符来实现运算效率最高,所以最有效率的方法算出2乘以8等于多少的语句是 2<<3 。
8.基本数据类型的类型转换中,要将double类型的常量3.14159赋给为整数类型变量n的语句是_
n=(int)3.14159;__________。

9.八进制整数012表示十进制的___10___,十六进制数0x3C表示十进制的___60__。
10.一个十进制整数转换成八进制数后是1234,则它转为十六进制数后是 29C 。
1234—>001010011100(二进制)
二、选择题

  1. 在Java中,以下错误的变量名是( D )。(选择一项)

    A constant
    B. flag
    C. a_b
    D. final

  2. 以下选项中属于合法的Java标识符的是( cd )。(选择两项)

    A. public
    B. 3num
    C. name
    D. _age

  3. 在Java中,byte数据类型的取值范围是( A )。(选择一项)

    A -128 ~ 127
    B. -228 ~128
    C. -255 ~ 256
    D. -255 ~ 255

  4. 下面的代码段中,执行之后i和j的值是( C )。(选择一项)
    int i=1; int j;
    j=i++;

    A 1,1
    B. 1,2
    C. 2,1
    D. 2,2

  5. 下面Java代码的执行结果是( A )。(选择一项)
    public class Test {
    public static void main(String args[]) {
    System.out.println(100 % 3);
    System.out.println(100%3.0);
    }
    }

    A 1 1.0
    B. 1 1
    C. 1.0 1.0
    D. 33 33.3

  6. 下面的赋值语句中错误的是( A )。(选择一项)

    A float f = 11.1;
    B. double d = 5.3E12;
    C. double d = 3.14159;
    D. double d = 3.14D;

1.float的精度是保证至少7位有效数字是准确的
2.float的取值范围 [-3.4028235E38, 3.4028235E38],

  1. 在Java中,下面( BA)语句能正确通过编译。(选择两项)

    A System.out.println(1+1);
    B. char i =2+‘2’;
    System.out.println(i);
    C. String s=“on”+‘one’;
    D. int b=255.0;

  2. 以下Java运算符中优先级别最低的两个选项是( AB )。(选择二项)

    A 赋值运算符=
    B. 条件运算符 ?=
    C. 逻辑运算符|
    D. 算术运算符+

  3. 有以下方法的定义,请选择该方法的返回类型( D )。(选择一项)
    method(byte x, double y) {
    return (short)x/y*2;
    }

    A byte
    B. short
    C. int
    D. double

  4. 关于以下Java程序中错误行的说明正确的是( B )。(选择一项)

public class Test2 {
     
	public static void main(String[] args) {
     
		short s1=1;   //1
		s1=s1+1;     //2
		s1+=1;       //3
		System.out.println(s1);
	}
}

A 1行错误
B. 2行错误
C. 3行错误
D. 1行,2行,3行都错误
三、判断题
1.Java中变量名不区分大小写,number和NuMbEr代表同一个变量。( X )
2.在编译Java源程序时,计算机根本不会去识别各个变量名的具体含义,因此命名规范对编写Java程序而言不是必要的,而且有可能会降低编写Java源程序的效率。(X )
3.Java语言中不同数据类型的长度是固定的,不随机器硬件不同而改变。( T )
4.char类型变量可以存储一个Unicode字符,在内存中占2个字节,该字符可以是一个汉字。( T )
5.运算符||和&&既是逻辑运算符,也是位运算符。根据两侧操作数的类型判断是逻辑运算符还是位运算符。( X )
6.^ 是异或位运算符,运算规则是如果两个操作数相同,结果是0,否则结果是1。( T )
7.赋值运算符优先级别低于条件运算符,条件运算符优先级别低于算术运算符。( T )
8.赋值和条件运算符是运算级别最低的两种运算符,都具有自右向左的结合性。( T )
9.整型常量的默认类型是int类型,浮点常量的默认类型是float类型。( X )
小数属于浮点型(默认为double)
10.00101010 & 00010111语句的执行结果为00111111( X )
四、简答题
1.Java是一种强类型语言,说明Java的数据类型分类。
答:基本数据类型:数值型<整数类型:byte、short、int、long,浮点类型:float、double,字符型(char),布尔型(boolean);引用数据类型:类(class),接口(interface),数组
2.i++和++i的异同之处
答:i++,先进行运算再自增;++i先自增再进行运算,都是加一。
3.运算符||和|的异同之处
答:||左边的表达式为真时,右边的表达式不用进行计算了;|需要考虑俩边的表达式。
4.Java中基本数据类型转换的规则
答:(1)布尔型和其它基本数据类型之间不能相互转换;(2)byte型可以转换为short、 int、long、float和double; (3)short可转换为int、long、float和double; (4)char可转换为int、long、float和double; (5)int可转换为long、float和double; (6)long可转换为float和double; (7)float可转换为double.
五、编码题
1.输入圆形半径,求圆形的周长和圆形的面积,并将结果输出

import java.util.Scanner;
public class TestCircle {
     
	public static void main(String[] args) {
     
		// 定义圆周率
		final double PI = 3.14;
		Scanner input = new Scanner(System.in);
		// 输入半径
		System.out.println("请输入圆的半径:");
		// 计算周长和面积
		float r = input.nextFloat();
		double c = 2 * PI * r;
		double s = PI * r * r;
		// 输出周长和面积
		System.out.println("该圆的半径为:R=" + r);
		System.out.println("该圆的周长为:C=" + 2 + "*" + PI + "*" + r + "=" + c);
		System.out.println("该圆的面积为:S=" + PI + "*" + r + "*" + r + "=" + s);
	}
}

2.某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。结果如图所示。
java入门基础学习(二)_第1张图片

public class TestEncryption {
     
	public static void main(String[] args) {
     
		//输入一个4位整数
		Scanner s = new Scanner(System.in);
		System.out.print("请输入一个4位正整数:");
		int num = s.nextInt();		
		//获取各个位上的数
		int bit4 = (num / 1000); // 取千位的数字
		int bit3 = (num / 100) % 10; // 取百位的数字
		int bit2 = (num / 10) % 10; // 取十位的数字
		int bit1 = num % 10; // 取个位的数字
		//每位数字加5		
		bit4 = (bit4+5)%10;
		bit3 = (bit3+5)%10;
		bit2 = (bit2+5)%10;
		bit1 = (bit1+5)%10;
		//交换第一位和第四位
		int  temp;
		temp = bit4;
		bit4 = bit1;
		bit1 = temp;
		//交换第二位和第三位
		temp = bit2;
		bit2 = bit3;
		bit3 = temp;
		// 输出加密后数字		
		//System.out.println("加密后的数字为:"+bit4+bit3+bit2+bit1);
		int ennum = bit4*1000+bit3*100+bit2*10+bit1;
		System.out.println("加密后的数字为:"+ennum);
		
	}
}

java入门基础学习(一)
java入门基础学习(二)
java入门基础学习(三)
java入门基础学习(四)
java入门基础学习(五)
java入门基础学习(六)
java入门基础学习(七)
java入门基础学习(八)
java入门基础学习(九)
java入门基础学习(十)
java进阶之常见对象(一)
java进阶之常见对象(二)
java进阶之冒泡排序
java进阶之选择排序
java进阶之面向对象(封装)
java进阶之面向对象(代码块、继承)
java进阶之面向对象(多态、抽象、接口)
java进阶之匿名内部类、访问修饰符、包

你可能感兴趣的:(java基础学习全套,java,编程语言,算法,数据结构)