一.选择结构(Switch)
switch循环:
选择结构语句之switch
格式:
switch(表达式或者某个变量值){
case 值1:
语句1;
break ;
case 值2:
语句2:
break ;
...
default:
语句n;
break ;
}
执行流程
switch接收结果,
1)接收的结果和case后面的值1进行对比,成立,执行语句1,break 结束语句;
2)值1和switch接收的结果不匹配,和值2进行比较,成立,执行语句2, break,结束语句;
3)如果上面case都不匹配,执行default语句,语句n,break ,结束...
switch语句中的注意事项也是 (考点)
1)关于switch中的case语句后面只能常量,不能是变量 (体现Java是一种强类型语言)
前端的javascript(弱类型语言):它里面的swtich的case是可以是变量,可以是个常量
2)在书写switch语句的标准结构,不忘了break,如果语句中忘了书写break,会出现一个现象:case穿透!
在有的需求里面利用 case穿透 来完成一些需求;
3)关于switch语句的结束条件
a)要么遇见break结束
b)程序默认执行到末尾
4)关于default语句可以在switch语句中的任何位置,不影响语句的执行流程;
不管在任何位置,只要case语句都不匹配,执行default;
如果default语句在语句中,break不要省略
如果default语句的末尾,break可以省略;
面试题:
switch后面的跟的值的数据类型可以有哪些类型?
基本数据类型:byte,short,int,char
jdk5以后可以是枚举类型 enum:引用类型
jdk7以后可以是String字符串 :引用类型
二.循环结构语句和随机数的产生
1.for循环
格式
for(初始化语句;条件表达式;控制体语句或者步长语句){
循环体语句;
}
执行流程
1) 初始化语句:给变量赋值 (只执行一次)
2)然后执行条件表达式,看其是否成立,如果成立,执行的是循环体语句------>再次回到控制体语句或者步长语句--->变量自增或者自减
3)再次执行条件表达式,是否成立,成立,继续循环体语句---->再次回到控制体语句或者步长语句---->变量自增或者自减
4)一直执行到条件表达式不成立,for循环结束;
for(初始化语句1;条件中表达式1;控制体语句1){
循环体语句
for(初始化语句2;条件表达式2;控制体语句2){
循环体语句
}
}
2.while循环:
while循环的格式
经常使用的格式
初始化语句;
while(条件表达式){
循环体语句 ;
控制体语句或者步长语句;
}
执行流程:
首先,先初始化语句,对变量赋值;
执行条件表达式,是否成立;成立,则执行循环体语句,依次控制体语句进行变量控制--->再次判断条件表达式是否成立,成立,执行循环体语句--->控制体语句进行变量控制
当条件表达式不成立,while循环结束;
注意事项:控制体语句不要忘了,否则死循环;
3.流程控制语句
2.产生随机数:
jdk提供了类:java.lang.Math
java.lang包下的类不需要导包
针对数学运算的工具类,提供了很多的方法;
获取伪随机数,取值范围:[0.0,1.0)
public static double random():
快速使用:
Math.random()---获取一个随机数
格式
double number = Math.random();
三.Java中的方法
四.数组及其定义方法和数组的使用
class Demo{
public static void main(String[] args){
//已知一个数组
int[] arr = {87,56,13,24,17}; //创建一个数组
// int[] arr = new int[]{87,56,13,24,17}
//调用方法
printArray(arr) ; //arr是空间地址值}
//[元素1, 元素2, 元素3, ....元素n]
//定义一个方法
//直接输出,没有返回值类型 :void
//参数类型: 数组类型
public static void printArray(int[] array){
//实际要具体的数组(创建一个数组对象) :传递一个空间地址值
System.out.print("[") ;
//遍历数组
for(int x = 0 ; x < array.length ; x ++){
//获取到每一个元素了
//判断
//如果角标x == array.length-1
if(x==array.length-1){
//输出最后元素 以及有中括号 元素n]
System.out.println(array[x]+"]") ;
}else{
//中间的元素
//元素1, 元素2, 元素3,
System.out.print(array[x]+", ") ;
}
}
}
定义一个数组的内存的流程
冒泡排序
例子
package com.qf.edu.Test.Second;
public class MaoPao {
public static void main(String[] args) {
int[] arr = {68,73,13,16,19,91,25,55};
bubbleSort(arr);
printArray(arr);
}
public static void bubbleSort(int[] arr ){
for (int m=0;m< arr.length-1;m++){
for (int n=0;n<arr.length-1-m;n++){
if (arr[n]>arr[n+1]){
int temp = arr[n];
arr[n] = arr[n+1];
arr[n+1] =temp;
}
}
}
}
public static void printArray(int[] arr){
System.out.print("[");
for (int x=0;x<arr.length;x++){
System.out.print(arr[x]);
if (x<arr.length-1){
System.out.print(",");
}else {
System.out.print("]");
}
}
}
}
求最值问题
package com.qf.edu.Test.Third;
public class Third {
public static void main(String[] args) {
double[] arr ={12.9,53.54,75.0,99.1,3.14};
zuiDa(arr);
}
public static void zuiDa(double[] arr){
double min =arr[0];
for (int x=0;x< arr.length;x++){
if (min>arr[x]){
min = arr[x];
}
}
System.out.println("最小值为:"+min);
}
}
逆序
package com.qf.edu.ShuZu;
public class ArrayDemo02 {
public static void main(String[] args) {
int[] array ={45,56,62,59,98,22};
arr1(array);
}
public static void arr1(int array[]){
for (int x=0;x<array.length/2;x++){
int temp =array[x];
array[x]=array[array.length-1-x];
array[array.length-1-x]=temp;
}
for (int c=0;c<array.length;c++) {
System.out.print(array[c]+" ");
}
}
}
五.面向对象
面向对象的思想和概念
思想:
类和对象
封装private
//Demo类
class Demo{
//没有加入private
int num = 20 ;
//私有的
private int num2 =30 ;
//通过公共访问访问私有成员变量
public void show(){
System.out.println(num);
System.out.println(num2); //间接访问私有成员变量
}
//一个成员方法: 以后说的成员方法 都不能static
public void method(){ //公共的
//局部变量:修饰符根据我们的方法的权限来确定 ,局部变量一般都是默认修饰符
//private int x = 10 ;
System.out.println("method Demo...");
System.out.println("-----------------------");
function(); //间接调用私有方法了
}
//私有方法
private void function(){
System.out.println("function Demo...");
}
}
//测试类
public class PrivateDemo {
public static void main(String[] args) {
//访问Demo类的成员变量
//在一个类中访问另一个类东西,需要创建对象
//类名 对象名 = new 类名();
Demo d = new Demo();
System.out.println(d.num);
//System.out.println(d.num2);//num2' has private 私有
//访问Demo类的成员方法
//对象名.成员方法名()
d.method();
// d.function();//function()' has private
d.show();
}
}