基本语法

基本语法

新建项目

  1. 选中空项目
  2. 文件命名,保存文件位置
  3. 文件,new,模块
  4. 模块命名,完成出现src
  5. 项目结构:SDK选择1.8,语言等级设置为8,应用+完成
  6. 在src中新建com,在com中新建xin,在xin中写base,scanner等

关键字

  • 用于定义数据类型的关键字
class interface enum byte
short int long float
double char boolean void
  • 用于定义流程控制的关键字
if else switch case
default while do for
break continue return
  • 用于定义访问权限修饰符的关键字
private protected public
  • 用于定义类,函数,变量修饰符的关键字
abstract final static synchronized
  • 用于定义类与类之间关系的关键字
extends implements
  • 用于定义建立实例及引用实例,判断实例的关键字
new this super instanceof
  • 用于异常处理的关键字
try catch finally
throw throws
  • 用于包的关键字
package import
  • 其他修饰符关键字
native strictfp transient
volatile assert
  • 用于定义数据类型值的字面值
true false null

保留字

goto const

注意:

所有关键字都是小写


标识符:

  • Java对各种变量、方法和类等要素命名时使用的字符序列称为标识符
  • 技巧:凡是自己可以起名字的地方都叫标识符。

定义合法标识符规则:

  • 由26个英文字母大小写,0-9,_或$组成
  • 数字不可以开头。
  • 不可以使用关键字和保留字,但能包含关键字和保留字。
  • Java中严格区分大小写,长度无限制。
  • 标识符不能包含空格。

Java中的名称命名规范:

  • 包名:多单词组成时所有字母都小写:xxxyyyzzz
  • 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
  • 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写: xxYyyZzz
  • 常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ

变量

变量的概念:

  • 内存中的一个存储区域
  • 该区域的数据可以在同一类型范围内不断变化
  • 变量是程序中最基本的存储单元。包含变量类型、变量名和存储的值

使用变量注意:

  • Java中每个变量必须先声明,后使用
  • 使用变量名来访问这块区域的数据
  • 变量的作用域:其定义所在的一对{}内
  • 变量只有在其作用域内才有效
  • 同一个作用域内,不能定义重名的变量

String应用

package com.xin.base;

public class Day71000 {
    public static void main(String[] args) {
        char a='a';
        int c=10;
        String b="hello";

        System.out.println(c+a+b);//107hello
        System.out.println(b+a+c);//helloa10
        System.out.println(a+(c+b));//a10hello
        System.out.println(a+c+b);//107hello
    }
}
从String之后都是String

可以使用空字符“ ”来转化其它变量

进制转化

符号位

符号位:0为正数,1为负数

二进制

  • Java整数常量默认是int类型,当用二进制定义整数时,其第32位是符号位;当是long类型时,二进制默认占64位,第64位是符号位
  • 二进制的整数有如下三种形式:
    • 原码:直接将一个数值换成二进制数。最高位是符号位
    • 负数的反码:是对原码按位取反,只是最高位(符号位)确定为1。
    • 负数的补码:其反码加1。

计算机以二进制补码的形式保存所有的整数。

  • 正数的原码、反码、补码都相同
  • 负数的补码是其反码+1

计算机底层都以补码的方式存储数据

image-20230710133210939

image-20230710141144344


运算符

算术运算符

  • %:取余运算

​ 结果的符号与被模数相同

  • 前++:先自增,后运算(不会改变自己的数据类型)
  • ++后:先运算,后自增
int n=10;
n+=(n++)+(++n);//n=n+(n++)+(++n)//10+10+12=32

image-20230711155223776

逻辑运算符(短路),如果一个就已知结果,就不执行后面操作

b=1;
a=false& b++//b=2
 a=false&& b++//b=1

image-20230711161134693

image-20230711162038573


练习

假设你想开发一个玩彩票的游戏,程序随机地产生一个两位数的彩票,提示用户输入一个两位数,然后按照下面的规则判定用户是否能赢。

  1. 如果用户输入的数匹配彩票的实际顺序,奖金10000美元。
  2. 如果用户输入的所有数字匹配彩票的所有数字,但顺序不一致,奖金3000美元。
  3. 如果用户输入的一个数字仅满足顺序情况下匹配彩票的一个数字,奖金1000美元。
  4. 如果用户输入的一个数字仅满足非顺序情况下匹配彩票的一个数字,奖金500美元。
  5. 如果用户输入的数字没有匹配任何一个数字,则彩票作废。

提示:使用(int)(Math.random() * 90+10)产生随机数。
Math.random() : [0,1) * 90 >[0,90)+ 10→[10,100)>[10,99]

package com.xin.base;

import java.util.Scanner;

public class Day71202 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while(true) {
            System.out.println("请输入一个两位数");
            int sum = scanner.nextInt();
            int randSum = (int) (Math.random() * 90 + 10);
            System.out.println("彩票号码"+randSum);
            String sum1 = String.valueOf(sum);
            //这个语句的意思是将sum这个变量的值转换成一个字符串,并赋值给sum1这个字符串变量。
            // String类中有一个静态方法valueOf(),它可以接受不同类型的参数,
            // 比如boolean, char, int, long, float, double等,并将它们转换成字符串
            String sum2 = String.valueOf(randSum);
            //将String的元素用char拿出来
            char first1 = sum1.charAt(0);
            char secong1 = sum1.charAt(1);
            char first2 = sum2.charAt(0);
            char secong2 = sum2.charAt(1);
                if (sum == randSum) {//输入的数匹配彩票的实际顺序
                System.out.println("奖金10000美金");
            } else if (first1 == secong2 && first2 == secong1) {//输入的所有数字匹配彩票的所有数字,但顺序不一致
                System.out.println("奖金3000美金");
            } else if (first1 == first2 || secong2 == secong1) {//输入的一个数字仅满足顺序情况下匹配彩票的一个数字
                System.out.println("奖金1000美金");
            } else if ((first1 == first2 || secong2 == secong1) || (first1 == secong2 || first2 == secong1)) {//用户输入的一个数字仅满足非顺序情况下匹配彩票的一个数字
                System.out.println("奖金500美金");
            } else {
                System.out.println("彩票作废");
            }

          //  scanner.close();//要持续输入,不能关扫描
        }
    }
}

第二种方法

package com.xin.base;

import java.util.Scanner;

public class Day71203 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while(true){
            System.out.println("请输入2位数");
            int sum=scanner.nextInt();
            int randSum=(int)(Math.random()*90+10);
            System.out.println("彩票号码"+randSum);
            if (sum==randSum){
                System.out.println("奖金10000美金");
            } else if (sum/10==randSum%10&&sum%10==randSum/10) {
                System.out.println("奖金3000美金");
            } else if (sum/10==randSum/10||sum%10==randSum%10) {
                System.out.println("奖金1000美金");
            } else if (sum/10==randSum%10||sum%10==randSum/10) {
                System.out.println("奖金500美金");
            }else {
                System.out.println("彩票作废");
            }
        }
    }
}

posted @   新至所向  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示