1.scanner
package cn.itcast.day02.Scanner;
import java.util.Scanner;
/*
导包:alt+回车-->import class
Scanner:
1.概述:Java自带的一个类
2.作用:可以通过键盘录入的形式,将我们想要的数据录入到代码中,参与运行
3.怎么使用:
a.导包:为了找到这个类,使用这个类-->不用我们手动导包,idea自动导包
在class上面import java.util.Scanner;
b.创建对象->使用类中的成员
Scanner 名字 = new Scanner(System.in)
c.调用Scanner中的方法-->真真正正键盘录入的步骤
名字.方法名()
nextInt()-->录入整数
next()-->录入字符串
*/
public class scanner01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请您输入:");
//String字符串 s= sc.next();
int s = sc.nextInt();
System.out.println(s + 1);
}
}
package cn.itcast.day02.Scanner;
import java.util.Scanner;
/*
和尚升级版:
键盘录入的形式确定三个和尚的身高 获取最高的和尚
步骤:
1.导包-->idea自动导
2.创建Scanner对象
3.调用nextInt方法给三个和尚身高,连续调用3次nextInt方法
4.利用三元运算符,比较前两个数的大小,获取大的
5.拿着大的再和第三个比较,再拿大的
*/
public class scanner02三个和尚 {
public static void main(String[] args) {
//创建对象
Scanner sc =new Scanner(System.in);
System.out.println("请您输入第一个和尚的身高:");
int heshang1= sc.nextInt();
System.out.println("请您输入第二个和尚的身高:");
int heshang2= sc.nextInt();
System.out.println("请您输入第三个和尚的身高:");
int heshang3= sc.nextInt();
//利用三元运算符
int temp= heshang1>heshang2?heshang1:heshang2;
int result=temp>heshang3?temp:heshang3;
System.out.println("身高最高的和尚为:"+result+"cm");
}
}
2.三元运算符
package cn.itcast.day02.三元运算符;
/*
三元运算符:
1.格式
boolean表达式?表达式1:表达式2
2.执行流程
a.走boolean表达式
b.如果是true,走?后面的表达式1
c.否则,直接走:后面的表达式2
*/
public class sy1 {
public static void main(String[] args) {
int i =10;
int j =20;
//需求:将两个变量较大的值取出来
int result= i>j?i:j;
System.out.println("i和j之间较大的值是"+result);
}
}
package cn.itcast.day02.三元运算符;
/*
需求:定义一个变量,表示分数
判断这个分数是否及格
分析:1,定义一个变量,赋值
2,和60进行比较
如果大于60,返回及格
否则,不及格
*/
public class sy2是否及格 {
public static void main(String[] args) {
int score = 59;
String result = score>=60?"及格":"不及格";
System.out.println(result);
}
}
package cn.itcast.day02.三元运算符;
/*
定义三个变量,获取最大值
步骤:
1,定义三个变量,分别赋值
2,先用前两个比较,拿较大的值
3,拿这个最大的值,和第三个比较,取较大的
*/
public class sy3比较最大值 {
public static void main(String[] args) {
int i = 150;
int j =210;
int k =165;
int temp= (i>j)?i:j;
int result= (temp>k)?temp:k;
System.out.println("三个数中最大值为:"+result);
}
}
package cn.itcast.day02.三元运算符;
/*
三个和尚:
需求: 有三个和尚,身高分别为 165 150 210 ,求出身高最高的和尚
步骤:
两两比较,拿较大的
拿着较大的跟第三个去比较,再拿最大的
* */
public class sy4和尚 {
public static void main(String[] args) {
int heshang1 =165;
int heshang2 =150;
int heshang3 =210;
int temp= heshang1>heshang2?heshang1:heshang2;
int max= temp>heshang3?temp:heshang3;
System.out.println("三个和尚身高最高的是:"+max);
}
}
3.分之语句
package cn.itcast.day02.分之语句;
/*
if
1.格式:
if(boolean表达式){
执行语句
}
2.执行流程:
走if后面的boolean表达式,如果是true,走if后面大括号的执行语句
3.使用场景:
一种情况比较
*/
public class Demo01If {
public static void main(String[] args) {
int i =30;
if (i>20){
System.out.println("我爱你");
}
System.out.println("我恨你");
}
}
package cn.itcast.day02.分之语句;
/*
if...else
1.格式:
if(boolean表达式){
执行语句1
}else{
执行语句2
}
2.执行流程:
a.先走if后面的boolean表达式
b.如果是true,走if后面的执行语句1
c.否则,走else后面的执行语句2
3.使用场景:
2种情况
*/
public class Demo02IfElse {
public static void main(String[] args) {
int i =10;
int j =20;
if(i==j){
System.out.println("i 和j相等");
}else{
System.out.println("i和j不相等");
}
}
}
package cn.itcast.day02.分之语句;
/*
需求判断一个整数的奇偶性
*/
public class Demo03IfElse判断奇偶 {
public static void main(String[] args) {
int i =101;
if(i%2==0){
System.out.println("偶数");
}else{
System.out.println("奇数");
}
}
}
package cn.itcast.day02.分之语句;
/*
else if
1.格式:
if(boolean表达式){
执行语句1
}else if(boolean表达式){
执行语句2
}else if(boolean表达式){
执行语句3
}...else{
执行语句n
}
2.执行流程:
a.走if,判断,如果是true,走if后面的执行语句1
b.如果是false,接着走else if,接着判断,如果是true,走对应的执行语句2
c.如果是false,接着走下面的else if判断
d.如果以上所有的判断都没有成立,走else后面的执行语句n
3.使用场景:
2种情况以上
*/
public class Demo04ElseIf {
public static void main(String[] args) {
int i =10;
int j =20;
if(i>j){
System.out.println("i大于j");
}else if (i<j){
System.out.println("i小于j");
}else{
System.out.println("i等于j");
}
}
}
package cn.itcast.day02.分之语句;
import java.util.Scanner;
/*
小明已经期末考试了,他爹答应他考什么样的分数,就给什么奖励
100-90 奖励带小明去日本小电影基地亲身体验
80-89 奖励小明日本小电影网站十个(3D)
70-79 奖励小明日本小电影光碟一张
60-69 给一个么么哒
60以上 一掌拍死
*/
public class Test考试奖励 {
public static void main(String[] args) {
//创建Scanner对象
Scanner sc =new Scanner(System.in);
System.out.println("请你输入分数:");
int sore =sc.nextInt();
//判断
if(sore>=90&&sore<=100){
System.out.println("奖励带小明去日本小电影基地亲身体验");
}else if (sore>=80&&sore<=89){
System.out.println("奖励小明日本小电影网站十个(3D)");
}else if (sore>=79&&sore<=70){
System.out.println("奖励小明日本小电影光碟一张");
}else if (sore>=69&&sore<=60){
System.out.println("给一个么么哒");
}else if (sore>=100||sore<=0){
System.out.println("分数错误");
} else {
System.out.println("一掌拍死");
}
}
}
4.字符串操作
package cn.itcast.day02.字符串操作;
/*
字符串的"+"操作
*/
public class zfc1 {
public static void main(String[] args) {
System.out.println("it" + "heima");
System.out.println("heima" + "it");
System.out.println("666" + "heima");
System.out.println("黑马" + "666");
System.out.println( 1 + 99 + "黑马");
}
}
package cn.itcast.day02.字符的操作;
/*
字符的"+"操作
*/
public class zf1 {
public static void main(String[] args) {
//定义两个变量
int i =10;
char c = 'A';//'A'的值是65
c = 'a';//'a'的值是97
c = '0';//'0'的值是48
System.out.println(i + c);
//char ch = i + c;
//char类型会被自动提升为int类型
int j = i + c;
System.out.println(j);
//int k = 10+ 13.14;
double d = 10 +13.14;
System.out.println(d);
}
}
5.数据类型
package cn.itcast.day02.数据类型;
/*
按照数据类型的取值范围从小到大排序
byte,short,char-->int-->long-->float-->double
整数默认类型:int
小数默认类型:double
数据类型转换:
1.什么时候发生:当等号左右两边的数据类型不一致
2.分两种:
自动类型转换
取值范围大的数据类型 变量名 = 取值范围小的数据类型
注意:当小的类型和大的类型做运算的时候,小的类型会自动提升为大的类型
强制类型转换(强转)
取值范围小的数据类型 变量名 = 取值范围大的数据类型-->报错,需要我们强转
取值范围小的数据类型 变量名 = (取值范围小的数据类型)取值范围大的数据类型
注意事项:
1.不要随便使用强转,容易出现精度损失,数据溢出
2.byte,short如果等号右边是常量,或者是常量运算,如果没有超出范围,不会报错-->jvm的优化
3.byte,short如果等号右边有变量,或者int型的变量参与运算了,会自动提升为int型,需要强转
4.char类型如果提升为int型之后,会去一个码表中查询字符对应的int值(ASCII码表-->unicode码表(万国码))
*/
public class 数据类型转换1 {
public static void main(String[] args) {
/*
100是整数,默认类型是int;将int型的100赋值给了long型的变量l
是将取值范围小的数据类型赋值给了取值范围大的数据类型
发生了自动类型转换
*/
long l = 100;
System.out.println(l);
/*
100L属于long型,变量b属于double型,将long型的100赋值给了double型的变量b
是将取值范围小的数据类型赋值给了取值范围大的数据类型
发生了自动类型转换
*/
double b = 100L;
System.out.println(b);
double sum = 100+2.5;
System.out.println(sum);
System.out.println("------------以下是强转----------");
/*
2.5默认类型是double,将double的2.5赋值给了float型的f
是将取值范围大的数据类型赋值给了取值范围小的数据类型
报错,需要强转
*/
//float f = 2.5;
float f = (float) 2.5;
int i = (int)2.9;
System.out.println(i);
int j = (int) 100L;
/*
int 转成二进制: 32位二进制
100亿:36位二进制
多出的4位会自动干掉
*/
int x = (int)10000000000L;
System.out.println(x);//1410065408
byte b1 = 10;
/*
byte+int-->int+int
*/
byte sum1 = (byte)(b1+100);
int c = 'A'+0;
System.out.println(c);
}
}
6.比较运算符
package cn.itcast.day02.比较运算符;
/*
比较运算符,输出的是true和false
== 针对基本数据类型,比较的是值是否相同
针对引用数据类型,比较的是地址值
*/
public class gx1 {
public static void main(String[] args) {
//定义变量
int i =10;
int j =20;
int k =10;
//==是否相等,相等输出true,不相等输出false
System.out.println(i == j);
System.out.println(i == k);
System.out.println("----------------");
//!==
System.out.println(i != j);
System.out.println(i != k);
System.out.println("---------------");
//>
System.out.println(i > j);
System.out.println(i > k);
System.out.println("---------------");
//>=
System.out.println(i >= j);
System.out.println(i >= k);
System.out.println("---------------");
//不小心把==写成了=
//把j的值赋值给i,然后输出i的值
System.out.println(i = j);
}
}
7.短路运算符
package cn.itcast.day02.短路运算符;
/*
短路逻辑运算符
*/
public class dl1 {
public static void main(String[] args) {
//定义变量
int i = 10;
int j = 20;
int k = 30;
//&& 有false则false
System.out.println((i > j)&& (i > k));//false && false
System.out.println((i < j)&& (i > k));//true && false
System.out.println((i > j)&& (i< k));//false && ture
System.out.println((i <j)&& (i <k));//ture && ture
System.out.println("------------------------");
//|| 有true则true
System.out.println((i > j)|| (i > k));//false || false
System.out.println((i < j)|| (i > k));//true || false
System.out.println((i > j)|| (i< k));//false || ture
System.out.println((i <j)|| (i <k));//ture || ture
System.out.println("------------------------");
//&&和&
//&无论真假,左右都要实行
//&&如果左边为真,右边执行;如果左边为假,右边不执行
// System.out.println((i++> 100) & (j++> 100));//false & false
System.out.println((i++> 100) && (j++> 100));//false && false
System.out.println("i:"+i);
System.out.println("j:"+j);
//||如果左边为假,右边执行;如果左边为真,右边不执行
}
}
8.算数运算符
package cn.itcast.day02.算术运算符;
/*
算术运算符
*/
public class ys1 {
public static void main(String[] args) {
//定义两个变量
int a = 6;
int b = 4;
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / b);
System.out.println(a % b);
//除法得到的是商,取余得到是余数
//整数相除只能得到整数,要得到小数,必须有浮点的参与
System.out.println(6.0 / 4);
}
}
9.自增自减运算符
package cn.itcast.day02.自增自减运算符;
/*
自增自减运算符
*/
public class zj1 {
public static void main(String[] args) {
//定义变量
int i = 10;
System.out.println("i:"+ i);
//单独使用,效果一样
// i++;
//++i;
//System.out.println("i:" + i);
//参与操作使用,++在变量前,先拿变量做++,再操作
// ++在变量后,先操作,再拿变量做++
//int j = i++;
int j = ++i;
System.out.println("i:" + i);
System.out.println("j:" + j);
}
}
10.赋值运算符
package cn.itcast.day02.赋值运算符;
/*
赋值运算符
*/
public class fz1 {
public static void main(String[] args) {
//把10赋值给int类型的i
int i =10;
System.out.println("i:"+i);
//+=把左边和右边的数据做加法操作,结果赋值给左边
i += 20;
// i = i + 20;
System.out.println("i:" + i);
//注意:扩展的赋值运算符底层隐含了强制类型转换
short s = 10;
//s += 20;
s = (short)(s + 20);
System.out.println("s:" + s);
}
}
11.逻辑运算符
package cn.itcast.day02.逻辑运算符;
/*
逻辑运算符
*/
public class lj1 {
public static void main(String[] args) {
//定义变量
int i =10;
int j =20;
int k =30;
//&(与) 有false则false
System.out.println((i > j)&(i > k));//false & false
System.out.println((i < j)&(i > k));//true & false
System.out.println((i > j)&(i< k));//false & ture
System.out.println((i <j)&(i <k));//ture & ture
System.out.println("------------------------");
//|(或) 有true则true
System.out.println((i > j)|(i > k));//false | false
System.out.println((i < j)|(i > k));//true | false
System.out.println((i > j)|(i< k));//false | ture
System.out.println((i <j)|(i <k));//ture | ture
System.out.println("------------------------");
//^(异或)相同为false,不同为true
System.out.println((i > j)^(i > k));//false ^ false
System.out.println((i < j)^(i > k));//true ^ false
System.out.println((i > j)^(i< k));//false ^ ture
System.out.println((i <j)^(i <k));//ture ^ ture
System.out.println("------------------------");
//!
System.out.println(i > j);//false
System.out.println(!(i > j));//!false
System.out.println(!!(i > j));//!!false
}
}