目录
1.运算符
①算术运算符:+ - * / % ++ --
②赋值运算符:+= -= *= /= %=
a+=5; --> a = a+5;
③关系运算符:> < >= <= != == 结果类型:true或false
④逻辑运算符:&& || !
syso(1==2);//false
syso(!(1==2));//true
运算符的优先级
最高的优先级:小括号,即( )
最低的优先级:赋值运算符,即=
优先级顺序:!>算术运算符>关系运算符>&&>||
⑤三元运算符
表达式?结果1:结果2
布尔表达式 ? 值0 : 值1
若“布尔表达式”的结果为true,就计算“值0”,而且它的结果成为最终由运算符产生的值。但若“布尔表达式”的结果为false,计算的就是“值1”,而且它的结果成为最终由运算符产生的值。
注意:
表达式:①可以是单独的关系运算符的表达式②也可以是关系运算符与逻辑运算符结合的表达式。
2.类型转换
①基本类型的范围大小
byte<short<int<float<double
byte<short<char<float<double
②
自动类型转换:小---》大
强制类型转换:大---》小 double b = (数据类型)a
int a = 10;
double b = a;
3.Scanner 输入器
①导包
import java.util.Scanner
②创建输入器
Scanner sc = new Scanner(System.in);
③给出相应的提示语句并获取输入的内容
System.out.println("请输入成绩");
double sb = sc.nextDouble();
④打印输入输入器输入的数据内容
System.out.println("内容为: "+sb);
4.equals():比较两个字符串是否相同
==:比较两个数字是否相同,也可以比较字符串
可以进行以下练习:
package com.zking.work;
import java.util.Scanner;
public class Work {
private static Scanner scanner;
@SuppressWarnings("resource")
public static void main(String[] args) {
// ----[只要看到“输入”二字:用Scanner]----
// 1、输入你的姓名,性别,及年龄,放入三个不同类型的变量中,
// 要求格式如下
// 请输入你的姓名:***
// 请输入你的性别:*
// 请输入你的年龄:**
// 姓名 性别 年龄
// *** * **
//提前了解 charAt()
//sc.next() 得到的是字符串String
//charAt(0):获取下标为0的字符 hello 男女
//char sex = sc.next().charAt(0);
//1.创建输入器并且导包 ctrl+1 回车即可
// Scanner sc = new Scanner(System.in);
// System.out.println("请输入你的姓名: ");
// //调用输入器
// String name = sc.next();
// System.out.println("请输入性别");
// String sex = sc.next();
// System.out.println("请输入年龄: ");
// int age = sc.nextInt();
// System.out.println("姓名\t性别\t年龄");
// System.out.println(name+"\t"+sex+"\t"+age);
// 2、输入两个整数,放入到两个变量a与b中,编程将a与b中的值交换,
// 并输出a与b的值。
//变量与变量之间的交换????
// int a = 10;//a容器
// int b = 2;//b容器
// int c = 0;//C容器 [小三] 空的
// c = a;//将a容器中的鱼儿放入C容器中 此时a就是空的
// a = b;//将b容器中的鱼儿放入a容器中,此时a就是满的,b容器空了
// b = c;//最后,将C容器中的鱼儿[a的鱼儿]放入b容器中
//程序一运行后,想要用户自己去输入数据,用到Scanner输入器
// Scanner sc = new Scanner(System.in);
// System.out.println("请输入第一个整数: ");
// int a = sc.nextInt();//5
// System.out.println("请输入第二个整数: ");
// int b = sc.nextInt();//10
// System.out.println("交换前a = "+a);
// System.out.println("交换前b = "+b);
// //进行交换 小三的类型取决于交换交换变量的类型
// int temp = a;
// a = b;
// b = temp;
// System.out.println("交换后a = "+a);
// System.out.println("交换后b = "+b);
// 3、输入一个整数,代表有n个小时,
//计算n个小时等于多少天零多少个小时。比如输入:25,
//那么输出“1天零1个小时”[% /]
//35
// Scanner sc = new Scanner(System.in);
// System.out.println("请输入一个整数: ");
// int hours = sc.nextInt();//35 12
// //天
// int day = hours / 24;//hours里面有多少个24
// //小时
// int h = hours % 24;//hours里面有多少个24,还剩余多少。
// System.out.println(day+"天零"+h+"个小时");
// 4、输入电视机的价格(double型)及数量(int型),
// 计算这些电视机总价值是多少。
// price: 价格 count:数量统计
//创建输入器并且导包
// Scanner sc = new Scanner(System.in);
// System.out.println("请输入电视机的价格");
// double price = sc.nextDouble();
// System.out.println("请输入数量: ");
// int count = sc.nextInt();
// //总价格 = 单价 * 数量
// double sum = price * count;
// System.out.println("总价格为: "+sum);
// 5、输入一个四位数的整数,要求编程将这个四位数中的个位,
// 十位,百位,千位分别输出,并求和。
//1234 以10 为单位求每个数
// Scanner sc = new Scanner(System.in);
// int a = sc.nextInt();
// //1234中有多少个10? 123 剩余4
// int gw = a % 10;
// int sw = a / 10 % 10;
// int bw = a / 100 % 10;
// int qw = a / 1000;
// System.out.println("个位: "+gw+"\t十位: "+sw+"\t百位: "+bw+"\t千位: "+qw);
// int sum = gw+sw+bw+qw;
// System.out.println("和为: "+sum);
// 6、输入一个3位数,分别放入到3个变量中去,
//编程将这3个变量中的值交换后输出。比如依次输入123三个数
// 放入到变量a,b,c中去,最后输出a,b,c的值,要求输出321。
// Scanner sc = new Scanner(System.in);
// System.out.println("请输入一个三位数: ");
// int num= sc.nextInt();//123
// //求个十百
// int gw = num % 10;
// int sw = num / 10 % 10;
// int bw = num / 100;
// System.out.println("变换前: "+bw+sw+gw);
// //找小三 让gw与bw进行互换
// int temp = 0;
// temp = gw;
// gw = bw;
// bw = temp;
// System.out.println("变换后: "+bw+sw+gw);
// 7、收银系统:首先输入衣服的价格,买了几件;
//再输入帽子的价格,以及要买的个数;然后接收客人所付的钱,
//最后输出找零的钱数。
/*
Scanner sc = new Scanner(System.in);
System.out.println("请输入衣服的价格: ");
double yfPrice = sc.nextDouble();
System.out.println("请输入衣服的件数: ");
int yfCount = sc.nextInt();
System.out.println("请输入帽子的价格: ");
double mzPrice = sc.nextDouble();
System.out.println("请输入帽子的件数: ");
int mzCount = sc.nextInt();
// 计算总价格 让客户知道
double sum = yfPrice * yfCount +mzPrice * mzCount;
System.out.println("商品总价格为: "+sum);
System.out.println("请输入所付的money: ");
double money = sc.nextDouble();
//找零
double zl = money - sum;
System.out.println("应找零: "+zl+"元");
*/
// 8、输入两个整数,判断第一个数是否大于第二个数。
//如:输入8和7,要求输出“8<7是:false”
// Scanner sc = new Scanner(System.in);
// System.out.println("请输入第一个整数: ");
// int a = sc.nextInt();//8
// System.out.println("请输入第二个整数: ");
// int b = sc.nextInt();//7
// System.out.println(a + " < " + b + "是: "+ (a<b));
// 9、输入一个整数,输出这个整数与1到5相乘的结果,
// 要求格式如下:
// 请输入一个整数:X
// 1*X=结果
// 2*X=结果
// ……
// 5*X=结果
// 例如:用户输入数字5
// 1*5=5
// 2*5=10
// 3*5=15
// 4*5=20
// 5*5=25
// Scanner sc = new Scanner(System.in);
// System.out.println("请输入一个整数X: ");
// int x = sc.nextInt();//5
// System.out.println(1 + " * " + x + " = "+(1*x));
// System.out.println(2 + " * " + x + " = "+(2*x));
// System.out.println(3 + " * " + x + " = "+(3*x));
// System.out.println(4 + " * " + x + " = "+(4*x));
// System.out.println(5 + " * " + x + " = "+(5*x));
// 1、根据天数(32)计算周数和剩余的天数[% /]
// int day = 32;
// //1个星期7天
// int week = day / 7;
// //天数
// int sd = day % 7;
// System.out.println(day+"天有"+week+"个星期,还剩余: "+sd+"天");
// 2、由用户输入圆的半径,求出圆的面积【3.14*r*r】
// System.out.println(Math.PI);//求圆周率
// System.out.println( Math.pow(2, 10));//求幂
//系统中有一个变量可以直接获取圆周率 3.1415926
//3.141592653589793
// Scanner sc = new Scanner(System.in);
// System.out.println("请输入圆的半径: ");
// double bj = sc.nextDouble();
// double area = Math.PI * bj * bj;
// System.out.println("面积为: "+area);
// 键盘输入两个double类型的数据,将其转变为int;
// 求出两个数字的最大值并输出
//1.输入2个double类型的数据
// Scanner sc = new Scanner(System.in);
// System.out.println("请输入第一个double类型的数据: ");
// double a = sc.nextDouble();
// System.out.println("请输入第二个double类型的数据: ");
// double b = sc.nextDouble();
// //2.将输入的2个double类型的数据转成int类型的数据
// int sa = (int)a;
// int sb = (int) b;
// //3.利用三元运算符求出sa大还是sb大
// int max = sa > sb ? sa : sb;
// System.out.println("最大值为: "+max);
}
}
5.选择结构if 和 是 switch
if语句的简单结构
/*
* 语法:
* if(表达式){
* 代码块
* }
* ①表达式:有关系运算符组成或者由关系运算符和逻辑运算符组合成的一个表达式
* 结果只有2种情况 true或者false boolean类型
* ②执行流程:
* 先执行表达式的结果。
* 根据表达式的结果计算,如果为true就执行后面{}中的代码块
* 如果为false 什么都不做。
*
* 注意:
* 当表达式成立 执行{}中的代码块。
* 如果代码块只有一行时,{}可省略
*
*/
列如下面书写方式:
//输入一个数字,判断该数字是不是偶数?
//当表达式中出现多个条件时 使用逻辑运算符进行拼接
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数字: ");
int num = sc.nextInt();
if(num % 2 == 0 && num != 0) {
System.out.println("就是偶数");
}
//输入一个年份,判断是否是闰年
//求闰年的标准:4年一润,100年不润。400年一润
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个年份: ");
int year = sc.nextInt();
if(year % 4 == 0 && year % 100 !=0 || year % 400 == 0) {
System.out.println("OK 就是闰年");
}
SWItch选择语句格式:
switch (选择变量) {
case 值1: … break;
case 值2: … break;
case 值3: … break;
... ...
default : … }
假设考查课程的成绩按优秀、良好、中等、及格和不及格分为五等,
分别用4、3、2、1、0来表示,但实际的考卷为百分制,
分别对应的分数为90-100、80-90、60-80、60分以下。
下面的程序将考卷成绩x转换为考查课成绩y。
代码如下:
int x = int(x/10);
switch(x)
{
case 10:
y=4;
break;
case 9:
y=4;
break;
case 8:
y=3;
break;
case 7:
y=2;
break;
case 6:
y=1;
break;
default:
y=0;
}
switch…case 的其他特性
各个 case 标签不必连续,也不必按特定顺序排列 default 标签可位于 switch…case 结构中的任意位置 default 标签不是必选的,但使用 default 标签是一个良好的编程习惯 每两个 case 标签之间的语句数不限
随机数
Random rm = new Random();
int n = rm.nextInt(3); / /产生一个随机数
【注意】 使用Random就一定要调用包 import java.util.Random;