java基本语法



                    Java语言发展史

课程大纲:

  1. Java语言发展史;

    1sun公司1995年推出,2009Oracle公司收购sun

  2. 下载;

    1、到Oracle官网下载

Java体系与特点

课程大纲:

  1. Java体系结构

1JavaSE: 标准版:桌面开发和低端商务应用解决方案

2JavaEE:企业版:以企业环境开发应用程序解决方案

3JavaME:微型版:致力于消费产品和嵌入式开发

SEEEME学习的基础。

  1. Java可以做什么

  1. 开发桌面应用程序,银行软件和结账软件,面向web的应用程序

  2. 门户网站(中国移动),阿里巴巴,电子商务网站

  3. 金融,电信,电力等各行各业的解决方案

  1. Java语言特点

  1. 纯面向对象的编程语言

  2. 跨平台

  3. 具有较高的安全性:自动回收(GC),强制类型检查,取消指针。

Java跨平台原理

课程大纲:

  1. Java快平台原理

Java源代码(.java→(编译)字节码文件(.class)→(执行)java虚拟机(Windows平台、Mac平台和Linux平台).

  1. Java虚拟机

  1. JVM可理解为可以执行字节码文件的虚拟计算机系统

  2. 它有一个解释器组件可以实现字节码文件和操作系统之间的通讯

  3. 对于不同的运行平台有着不同的JVM

  4. JVM屏蔽了底层运行平台的差别,实现了一次编译所赐运行

  1. 垃圾回收器(GC

  1. 不再使用的内存空间应当进行垃圾回收已释放内存空间,C++需要程序员自己手动回收无用的内存空间,Java消除了该弊端,

  2. JVM(提供了一种线程跟踪存储空间的分配情况)在空闲时检查和释放那些可以释放的内存空间

  3. GCJava程序运行过程中自动启动,程序员无法控制和干预

     

     

JDK的安装

课程大纲:

  1. JDK安装

  1. jdkJava开发工具集,

  2. jreJava运行环境

  1. JDK目录结构

  1. bin目录:存放Java的编辑器、解释器等工具(可执行文件)

  2. demo目录:存放演示程序

  3. include目录:存放用于本地方法的文件

  4. jre目录:存放Java运行环境文件

  5. lib目录:存放Java的类库文件

  6. sample目录:存放一些范例程序

  7. src.zip目录:jdk提供类的源代码

  8. db目录:存放轻量级的数据库,Derby

环境变量的配置

课程大纲:

  1. 配置环境变量

  1. path:用于指定操作系统可执行指令的路径

  2. calsspathJava虚拟机执行某个类时会按照classpath指定的目录顺序去查找这个类

  3. 我的电脑→属性→高级→环境变量

程序开发步骤

课程大纲:

  1. 对程序的理解

  1. 程序是为实现特定目标或解决特定问题而用计算机语言编写的一系列命令序列的集合

  2. 程序可看做是一些列动作的执行过程的描述

  1. Java程序开发的三个步骤

  1. 编写程序(hello.java

  2. 编译程序(hello.class

  3. 运行程序(JVM

HelloWorld入门

课程大纲:

  1. 编写HelloWorld程序

  1. public calss HelloWorld

{

     Public static void main(String[] args)

      {

           System.out.print(“Helloworld!”);

}

}

  1. javac命令编译程序

    1、由于配置好了path环境变量,所以直接打开命令程序(cmd),把目录切换到HelloWorld.java目录下,使用编译程序D\...javac HelloWorld.java

  2. Java命令运行程序

    1、上一步编译形成了HelloWorld.class文件,用Java命令运行程序:D:\...java HelloWorld

HelloWorld程序分析

课程大纲:

  1. HelloWorld程序分析

    1、见html文档

  2. 三种注释

    1// :单行注释

    2/*…..*/:多行注释

    3/**…..*/ :文档注释(使用Javadoc生成文档)

  3. 代码格式

  1. Java严格区分大小写

  2. Java是一种自由格式的语言

  3. 代码分为结构定义语言和功能执行语句

  4. 功能执行语句最后必须用分号结束

 

/**

文档注释:只是一个Java入门程序,

public:公共的,共有的

class:类别,声明一个类的关键字

 

*/

 

class HelloWorld

{

      //这是一个单行注释;

      /*

        这是一个多行注释;

      */

      public static void main(String[] args)

      {

           System.out.println("HelloWorld!");

      }

}

Java常用开发工具

课程大纲

  1. Java常用开发工具

  1. 编辑器:记事本、EditplusUE、其他文本编辑器

  2. 集成开发工具(IDE:EclipseNetBeansJBuilder

     

 

Java程序反编译介绍

课程大纲:

  1. 反编译工具介绍

  1. .class反编译成.java

  2. CavajJava Decomplier 是独立的Windows应用程序,即使没有安装Java,也可以使用。

变量

课程大纲:

  1. 什么是变量

  1. 变量是没有固定的值,是可以改变的,是系统为程序分配的一块内存单元,用来存储各种类型的数据,根据所存储的数据类型的不同,有各种不同类型的变量,变量名代表这块内存中的数据。

  1. 变量的分类

  1. 按所属类型分:基本数据类型和引用型数据类型

  2. 按被声明的位置分:

    局部变量:方法或语句块内部定义的变量

    全局变量:方法外部、类内部定义的变量

八种基本数据类型

课程大纲

  1. 计算机存储数据的基本单位

  1. 字节(Byte):计算机文件大小的基本计算单位

  2. 比特/位(bit1B = 8b

  3. 在内存计算过程中,字节少的数据运算速度更快

    在磁盘存储中,字节少的数据类型也可充分存入更多的数据

  1. 八种基本数据类型

    1

数据类型

关键字

占用字节

取值范围

默认值

布尔型

Boolean

1

True,false

False

字节型

byte

1

-128~127

0

短整型

Short

2

 

0

整型

int

4

 

0

长整型

long

8

 

0

字符型

char

2

 

\u0000

单精度浮点型

float

4

 

0.0F

双精度浮

double

8

 

0.0D

 

基本数据类型的声明

课程大纲

  1. 如何声明一个基本数据类型

    声明变量的格式:

  1. 声明变量:类名 变量名;int i

  2. 声明的同时给变量赋值:类名 变量名=值;int a=1

  3. 给已经声明过的变量赋值:变量名=值;i=2

     

class  BaseDataTypes

{

      public static void main(String[] args)

      {

           boolean flag;

           flag = true;

           byte b = 100;

           short s = 10;

           long g = 1000L;

           char c  = '';

           float f = 3.14f;

           double d = 3.1415926d;

           //变量名的首字母小写,多个单词之间首字母大写

          

          

          

      }

}

进制与转换

课程大纲

  1. 十进制

  1. 采用十进制可能与人有十个手指头有关

     

  1. 二进制

  1. 二进制逢二进一,只有01

  2. Bit指的是01,是计算机存储处理信息的基本单位,

  3. Byte 字节:他表示作为一个完整的处理单位的8个二进制代码

  1. 八进制

  1. Java章八进制要以0开头,0123

  2. 三个二进制表示一个八进制数字

  1. 十六进制

  1. 二进制表示法太冗长,所以计算机程序中很多实用十六进制,

  2. abcdef表示从0~9之上的数字,

  3. Java中十六进制要以0x开头:0x23d

  4. 四个二进制位表示一个十六进制数字

  1. 补码

    1、补码看计算机组成原理课本

  2. 进制转换

    1、看看计算机组成原理课本

     

 

标示符

课程大纲

  1. Java标示符

  1. Java对包、类、方法、参数和变量等要素命名使用的字符序列成为标示符

  1. 标示符的命名规则

  1. 由字母、数字、下划线(-)和($)组成

  2. 不能以数字开头

  3. 区分大小写

  4. 长度无限制

  5. 不能使Java中的关键字和保留字

  6. 见名知意

  1. 示例

    1合法标示符:

      Vince xiaobaiuser_name_userName$abc_123

    2非法标示符

      2 userNameuser#NameHello xiaobaiclass

基本数据类型转换

课程大纲

  1. 自动类型转换

  1. 容量小的类型自动转换为容量大的类型

  2. Byteshortint floatlongdouble

  3. Byteshortint三者不会相互转换,他们在计算时转换成int类型,

  1. 强制类型转换

  1. 容量大的类型转换成容量小的数据类型时要进行强制转换,加上强制转换符,

  2. Long n= 100L

    Int a = intn

  3. 有可能造成精度降低或者数据溢出,使用时小心。

  4. Boolean类型不能转换成任何数据类型,

关键字

课程大纲

  1. 关键字

    1、看课本总结

    2、保留字:gotoconst

  2. 示例

     

转义字符

课程大纲

  1. Java常用转义字符

    1\n:换行

    2\r:回车

    3\t:水平制表

    4\’:产生一个单引号

     

     

算术运算符

课程大纲

  1. 算术运算符

    1+,—,*/%

    2++,——,

    3++:如果是前缀先对次变量加一,在执行其他操作

           如果是后缀先执行其他操作,后对变量加一,

  2. 示例

  3. 作业

  1. 通过键盘输入,交换两个数据,然后输出这两个数

  2. 定义一个五位数,求各位上的数字之和

  3. 根据天数(46)计算周数和剩余天数,天数通过键盘输入

 

importjava.util.Scanner;

class  CylinderBluk

{

      public static void main(String[] args)

      {

           Scanner input = newScanner(System.in);

           System.out.println("请输入圆柱体的高:");

           int h = input.nextInt();

           System.out.println("请输入圆柱体的底面半径:");

           int r = input.nextInt();

           float pi = 3.14f;

           float result = pi*r*r*h;

           System.out.println("圆柱体的体积是:"+result);

 

      }

}

importjava.util.Scanner;

class  HomeWork1

{

      public static void main(String[] args)

      {

           Scanner input = newScanner(System.in);

           System.out.println("请输入第一个数字a");

           int a = input.nextInt();

           System.out.println("请输入第二个数字b");

           int b = input.nextInt();

           System.out.println("您输入的第一个数字a为:"+a+"第二个数字b为:"+b);

           int c = a;

           a=b;

           b=c;

           System.out.println("交换后的第一个数字a为:"+a+"第二个数字b为:"+b);

 

      }

}

class HomeWork2

{

      public static void main(String[] args)

      {

           int num = 12345;

           int gewei = num % 10;

           int shiwei = num % 100 / 10;

           int baiwei = num %1000 / 100;

           int qianwei = num % 10000 / 1000;

           int wanwei = num / 10000;

           int result = gewei + shiwei + baiwei+ qianwei + wanwei;

           System.out.println("结果是:"+result);

      }

}

importjava.util.Scanner;

 

class Homework3

{

      public static void main(String[] args)

      {

           Scanner input = newScanner(System.in);

           System.out.println("请输入天数:");

           int days =   input.nextInt();

           int weeks = days / 7;

           int day = days %7;

           System.out.println("您所输入天数为:"+days+",周数为:"+weeks+",剩余天数为:"+day);

 

      }

}

赋值运算符和关系运算符

课程大纲

  1. 赋值运算符

  1. 运算顺序为从右往左赋值

  2. =,  += ,  -=  , *=  ,  /=  %=

  1. 关系运算符

  1. 关系运算符结果总是boolean类型

  2. ==,!=,<>,<=,>=

逻辑运算符

课程大纲

  1. 逻辑运算符

  1. 逻辑运算符主要用于对boolean型结果的表达式进行运算,记过总司boolean

运算符

描述

示例

结果

&

|

^

异或

&&

短路与

||

短路或

  1. 注意短路与和与的区别

    &&:前面为非的话,后面不运算,

    &:前面为非的话,后面也要进行运算。

     

     

位运算符与移位运算符

课程大纲:

  1. 位运算符

  1. 位运算符对两个操作数中的每个二进制位都要进行运算

  2. 按位取反:~

    按位与: &

    按位或:|

    按位异或:^

  1. 移位运算符

  1. 左移:“a<<b:将二进制形式的a逐位左移b位,最定位空出的b位补0,

  2. 带符号右移:”a>>b”:做高位空出来的b位补原来的符号位

  3. 不带符号右移:”a>>b”:最高位空出来的b位补0.

     

三目运算符与优先级

课程大纲:

  1. 三木目运算符

  1. XYZ :Xboolean类型的表达式,先计算X的值,若为true,整个表达式的值为Y的值,否则为Z的值。

  1. 运算符的优先级

    1、跟平时很相像,加括号的优先级最高。

If else条件语句

课程大纲:

  1. Ifelse条件语句

  1. ifelse 条件是根据条件判断之后在做处理

    if(条件语句){。。。。。}

    if(条件语句){。。。。。}  else{。。。。。}

    if(条件语句){。。。。。}  else if(条件语句){。。。。。}

    if(条件语句){…} else if(条件语句){…} else {…}

Swith条件条件语句

课程大纲

  1. Swith条件语句的语法

    1语法:

    Switch(表达式)

    Case 取值1:语句块1break

    Case 取值2:语句块2break

    Case 取值3:语句块3break

    Case 取值n:语句块nbreak

    Default :语句块n+1break

  2. Swith条件语句的规则

  1. 表达式的返回类型必须是以下类型之一:

    Int bytebooleanshortString

  2. case子句中的取值必须是常量,且所有的case子句中的值必须是不同的

  3. default语句时可选择的

  4. break语句用来执行完一个case子句时跳出整个语句块,如果没有写语句块,则往下执行下去,

  5. case后面的执行体可写{},也可不写。

  1. 条件语句作业

  1. 要求用户输入两个数ab,如果a能被b整除或者a+b大于1000,则输出a,否则输出b

  2. 使用if  else设计自己一天的生活。

  3. 输入一个月,判断这个月是奇数还是偶数

  4. 输入一个天数,使用swtich判断该月天数并输出

     

    import java.util.Scanner;

    /**

    要求用户输入两个数ab,如果a能被b整除或者a+b大于1000,则输出a,否则输出b

    */

     

    class HomeWork1

    {

    publicstatic void main(String[] args)

    {

          Scannerinput = new Scanner(System.in);

          System.out.println("请输入第一个数a");

          inta = input.nextInt();

          System.out.println("请输入第二个数b");

          intb = input.nextInt();

          intsum = a + b;

          intdiv = a % b;

          if(div==0||sum>1000)

          {

                System.out.println(a);

          }

          else

          {

                System.out.println(b);

          }

     

    }

    }

    import java.util.Scanner;

     

    /**

    输入一个天数,使用swtich判断该月天数并输出

    */

     

    class HomeWork4

    {

    publicstatic void main(String[] args)

    {

          Scannerinput = new Scanner(System.in);

          System.out.println("请输入月份:");

          intresult  = input.nextInt();

          switch(result)

          {

          case1:

              System.out.println("该月份有31");

          break;

          case2:

              System.out.println("该月份有28");

          break;

          case3:

              System.out.println("该月份有31");

          break;

          case4:

              System.out.println("该月份有30");

          break;

          case5:

              System.out.println("该月份有31");

          break;

          case6:

              System.out.println("该月份有30");

          break;

          case7:

              System.out.println("该月份有31");

          break;

          case8:

              System.out.println("该月份有31");

          break;

          case9:

              System.out.println("该月份有30");

          break;

          default:

              System.out.println("输入有误!");

          break;

          }

    }

}

 While循环语句

课程大纲:

  1. while循环语句语法

  1. while(循环条件)

{

   //语句块

}

  1. 符合条件,循环继续执行,否则跳出循环。

  2. 特点:先判断后执行。

  1. while循环语句示例

 

/**

  while 循环语句

*/

class Test

{

     public static void main(String[] args)

     {

         int count = 100;

         int i = 0;

         while(i<count)

         {

              System.out.println("我爱你!");

              i++;

         }

     }

}

Do while 循环语句、

课程大纲:

  1. do while 循环语句语法

  1. do

{

    循环操作

}while(循环条件)

2、特点:先执行一边循环操作,符合条件,循环继续执行,否则跳出循环。先执行,后判断。

  1. 示例

importjava.util.Scanner;

/**

   do while 循环测试

*/

 

 

class  Test

{

     public static void main(String[] args)

     {

         Scanner input = new Scanner(System.in);

         int value = 1;

         do

         {

            System.out.println("唱的怎么样?好:1/不好:0");

 

              value = input.nextInt();

         }

         while (value !=1);

         System.out.println("非常好,再接再厉!");

     }

}

For循环语句

课程大纲:

  1. for循环语法

    for(初始化参数;判断条件;更新循环变量)

    {

                 循环体;

    }

  2. for循环示例

    code文件夹

  3. continue语句的使用

    跳出continue下面的语句,进入下一次循环,

  4. break语句的使用

    跳出当前最近的循环。

 

/**

 for循环

*/

class Test

{

     public static void main(String[] args)

     {

         int score  = 0;

         for(int i=0;i<100;i++)

         {

              if(i%10==0)

              {

                   System.out.println(""+i+"天,哪个啥!");

                   continue;

              }

              System.out.println(""+i+"天,吃饭,睡觉,学Java");

              score+=2;

              if(score>=100)

              {

                   break;

              }

         }

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

     }

}

多重循环语句

课程大纲:

  1. 多重循环

  1. 程序设计大赛,三个班级是个学生参赛,计算出每个班级参赛学生的成绩;

  2. *打印直角三角形的图案;

  1. 循环语句作业

  1. 打印输出0~200之间能被7整除,但不能被4整除的所有整数,

  2. Java阶乘求和:1+2+3+++10

  3. 打印九九乘法表

  4. 用“*”打印等腰三角形

importjava.util.Scanner;

/**

  程序设计大赛,三个班级是个学生参赛,计算出每个班级参赛学生的成绩;

*/

 

class  Demo1

{

     public static void main(String[] args)

     {

         Scanner input = new Scanner(System.in);

         //外层循环控制班级;

         for(int i = 1;i<=3;i++)

         {

              //  内层班级控制学生人数;

              int sum = 0;

              for(int j = 1;j<=4;j++)

              {

                System.out.println("请输入第"+i+"个班级第"+j+"个学生的成绩");

                int score = input.nextInt();

                sum+=score;

              }

              int avg = sum/4;

              System.out.println(""+i+"个班级的平均分是"+sum);

 

         }

     }

}

/**

  *打印直角三角形的图案

*/

 

class Demo2

{

     public static void main(String[] args)

     {

         //外层控制行数

         for(int i = 0;i<5; i++)

         { //控制输出空格

           for(int j =i;j< 4;j++)

            {

               System.out.print(" ");

            }

              //控制输出*

           for(int j =0;j <=i;j++)

              {

              System.out.print("*");

              }

              System.out.println();

         }

     }

}

/**

  打印输出0~200之间能被7整除,但不能被4整除的所有整数,

*/

 

class Homework1

{

     public static void main(String[] args)

     {

         for(int i = 0;i<200;i++)

         {

          if(i%7==0&&i%4!=0)

              {

               System.out.println(i);

            }

         }

     }

}

/**

    Java阶乘求和:1+2+3+...+10

*/

 

class Homework2

{

     public static void main(String[] args)

     { int sum = 0;

         for(int i= 1;i<=10;i++)

         {  

              int s = 1;

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

              {

               s*=j;

             }

               System.out.println(i+"的阶乘是:"+s);

              sum +=s;

         }

         System.out.println(sum);

     }

}

/**

     用“*”打印等腰三角形

*/

 

 

class HomeWork4

{

     public static void main(String[] args)

     {

         for(int i=0;i<5;i++)

         {

           for(int j=i;j<4;j++)

              {

                System.out.print(" ");

            }

               for(int j=0;j<=2*i;j++)

              {

                System.out.print("*");

              }

              System.out.println();

         }

     }

}

数组语法

课程大纲:

  1. 数组的作用

  1. 一组能够存储相同类型值的变量的集合

  2. 当我们有一组相同数据类型的变量要存储,如果此时使用单个变量名来存储会比较繁琐和复杂,不利于维护。

  1. 数组的语法

1、数组的声明:

声明一:int[] x;

声明二:int [] x = new int [3];

声明三:int [] x = new int[]{3,4,5};

        Int [] x = {3,4,5};

        2、求数组的长度:x.length;

 

class ArrayDemo

{

     public static void main(String[] args)

     {

         int[] x;

         x = new int[3];//第一种方式

         x[0] = 1;

         x[1] = 2;

         x[2] = 3;

         int []y = new int[]{1,2,3};//第二种方式

         int []z = {1,2,3};//第三种方式

         String[] names = new String []{"萌萌","梦梦","欢欢"};

         //String[]names = {"萌萌","梦梦","欢欢"};

         System.out.println(names.length);

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

         {

          System.out.println(names[i]);

         }

 

 

     }

}

数组深入

课程大纲:

  1. 使用数组要注意的问题

  1. 空指针异常

  2. 数组越界异常

  1. 数组内存结构分析

  2. 多维数组

    三个班级四个学生参加程序设计大赛,计算每个班级的平局分;见code文件夹;

  3. 作业

     

 

 

/**

  数组使用的两个问题

*/

 

classArrayExcptionDemo

{

     public static void main(String[] args)

     {

         String [] names = null;

         System.out.println(names[0]);//空指针异常:数组没有分配内存空间

         int [] a = {1,2,3,4,5};

         System.out.println(a[5]);//下标越界异常

     }

}

importjava.util.Scanner;

/**

   猜数游戏:从键盘中任意输入数字,判断数组中是否包含次数字

*/

 

class HomeWork1

{

     public static void main(String[] args)

     {

         Scanner input = new Scanner(System.in);

         System.out.println("开始————————");

         System.out.println("请输入数字:");

         int [] a = {10,35,67,35,56};

         int value = input.nextInt();

         boolean flag = false;

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

         {

            if(a[i]==value)

              {

               flag=true;

              }

         }

         if(flag)

         {

              System.out.println("有该数字");

         }

         else

              {

               System.out.println("没有该数字");

 

            }

 

     }

}

/**

   使用字母打印正三角形

*/

 

class HomeWork2

{

     public static void main(String[] args)

     {

         char[] c ={'A','B','C','D','E','F','G'};

         //控制行数

 

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

         {

              //控制空格

           for(int j =i;j<c.length -1;j++)

              {

                   System.out.print("");

            }

              //控制字母

              for(int j =0;j<=2*i;j++)

              {

                   System.out.print(c[i]);

              }

              System.out.println();

         }

        

     }

}

 

importjava.util.Scanner;

/**

   用多维数组实现输出三个班级四个学生参加程序设计大赛,

   计算每个班级的平局分;

*/

 

class  ManyArrayDemo

{

     public static void main(String[] args)

     {

         Scanner input = new Scanner(System.in);

         int [][] scores = new int [3][4];

 

         //通过键盘输入每个学生的成绩;

         for(int i = 0;i<3;i++)

         {

           for(int j = 0;j<4;j++)

              {

             System.out.println("请输入第"+(i+1)+"个班级"+(j+1)+"个学生的成绩:");

               scores[i][j] = input.nextInt();

              }

         }

         //输出每个班级学生的平均成绩

         for(int i= 0;i<3;i++)

         { int sum = 0;

           //System.out.println(""+(i+1)+"个班级的平均成绩为:");

           for(int j=0;j<4;j++)

              {

               sum += scores[i][j];

            }

              System.out.println(""+(i+1)+"个班级的平均分为:"+(sum/4));

         }

        

        

     }

}

求最大值和最小值算法

课程大纲:

一、求最大值和最小值算法

  1. 在一个数列中找出最大值和最小值

    遍历数组

/**

  求一组数种的最大值和最小值

*/

 

class MaxMinDemo

{

    public static void main(String[] args)

    {

        int [] num ={4,6,9,46,28,2,90};

        int max = num[0];

        int min = num[0];

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

        {

          if(num[i]>num[0])

            {

               max = num[i];

           }

            if(num[i]<num[0])

            {

               min = num[i];

            }

       

        }

        System.out.println("最大值为:"+max);

        System.out.println("最小值为:"+min);

    }

}

冒泡排序算法

课程大纲:

  1. 冒泡排序算法实现原理

    1、相邻的元素两两比较,前者比后者大的交换位置,否则不交换,

  2. 冒泡排序算法实现

    code文件夹

  1. 定义一个数组:

    Int []  hot = {705,356,378,596,264};

  2. 循环实现排序:

    for(int i= 0;i<hot.length-1;i++)

    {

    For(int j=0;j<hot.length-1-i;j++)

    {

        //判断是否要交换位置;

    }

    }

/**

   冒泡排序的实现

*/

 

class BubbleSort

{

    public static void main(String[] args)

    {

        int[] num = {159,345,654,234,890,687};

        int temp;

        //控制比较的轮数

        for(int i = 0;i<num.length-1;i++)

        {

          //控制每轮比较的次数

          for(int j=0;j<num.length-1-i;j++)

            {

              //判断条件,交换位置

              if(num[j]>num[j+1])

                {

                   temp=num[j];

                   num[j]=num[j+1];

                   num[j+1]=temp;

               }

 

           }

        }

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

        {

         System.out.println(num[i]+" ");

        }

    }

}

应用案例之模拟双色球彩票

课程大纲:

  1. 双色球彩票玩法

    1

  2. 双色球彩票需求分析

  1. 如何产生篮球和红球

  2. 如何接受用户选号

  3. 如何验证是否中奖

  4. 公布本期中奖号码

  1. 代码实现

     

importjava.util.Random;

importjava.util.Scanner;

 

/**

    模拟双色球彩票程序

    实现步骤:

    1、系统生成一个篮球和6个红球并储存

    2、接受用户选号

    3、验证是否中奖

    4、公布中奖号码

 

*/

 

class DoubleBall

{

    public static void main(String[] args)

    {

        int sysBlueBallNum;//系统生成的篮球号

        int [] sysRedBallNum = new int [6];//系统生成的红球号

        int userBlueBallNum;//用户选择的篮球号

        int [] userRedBallNum = new int [6];//用户选择的红球号

        int blueBall = 0;//判断蓝色球是否正确

        int redBallCount = 0;//判断红色球正确的个数

        Random r = new Random();//创建生成随机数的工具

        Scanner input = newScanner(System.in);//接受用户从键盘输入

        int[] redNum ={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33};

        sysBlueBallNum = r.nextInt(16) + 1;//生成系统的篮球号

        //随机生成系统红色球

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

        {

          while(true)

            {

               int index = r.nextInt(33);

                if(redNum[index]!=0)

                {

                    sysRedBallNum[i] = redNum[index];

                    redNum[index] = 0;

                    break;

                }

           }

        }

      System.out.println("双色球选号开始:——————李会芳:——————————祝你好运!GOOD LUCK TO YOU");

     System.out.println("请选择蓝色球的号码(161):");

     userBlueBallNum = input.nextInt();//用户选择蓝色球

      System.out.println("请选择红色球的号码(336):");

        //用户选择红色球

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

        {

           userRedBallNum[i] = input.nextInt(33) + 1;

        }

        //验证蓝色球正确的个数

        if(sysBlueBallNum==userBlueBallNum)

        {

          blueBall = 1;

        }

       //验证红色球正确的个数

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

        {

          for(int j = 0;j<sysRedBallNum.length;j++)

            {

               if(userRedBallNum[i]==sysRedBallNum[j])

                {

                   redBallCount++;

                   break;

                }

           }

       

        }

        //验证是否中奖

        if(blueBall==1 &&redBallCount==6)

        {

            System.out.println("恭喜您,中了一等奖:500万!");

        }

        else if(redBallCount==6)

        {

           System.out.println("恭喜您,中了二等奖!100万!");

        }

        else if(blueBall==1 &&redBallCount==5)

        {

           System.out.println("恭喜您,中了三等奖!3000RMB");

        }

        else if((blueBall==1 &&redBallCount==4  )||redBallCount==5)

        {

           System.out.println("恭喜您,中了四等奖!200RMB");

        }

        else if((blueBall==1 &&redBallCount==3  )||redBallCount==4)

        {

           System.out.println("恭喜您,中了五等奖!10RMB");

        }

        else if(blueBall==1)

        {

            System.out.println("恭喜您,中了六等奖!5RMB");

        }

        else

        {

            System.out.println("革命尚未成功,同志们仍需努力!");

        }

        //公布本期的中奖号码:(使用冒泡排序)

        int temp;

        for(int i =0;i<sysRedBallNum.length-1;i++)

        {

         for(int j = 0;j<sysRedBallNum.length-1-i;j++)

            {

              if(sysRedBallNum[j]>sysRedBallNum[j+1])

                {

                   temp = sysRedBallNum[j];

                   sysRedBallNum[j] = sysRedBallNum[j+1];

                   sysRedBallNum[j+1] = temp ;

                }

           }

        }

        //输出中奖的号码

        System.out.println("本期的中奖号码为:—————————————————");

        System.out.println("蓝色球:");

        System.out.println(sysBlueBallNum);

        //System.out.println();

        System.out.println("红球:");

        for(inti=0;i<sysRedBallNum.length;i++)

        {

            System.out.print(sysRedBallNum[i]+"");

        }

    }

}


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值