文章目录
Day1–输入,变量,赋值,基本类型
package 学习1;
import java.util.Scanner;
public class 学习hello {
public static void main(String[] args) {
// TODO 自动生成的方法存根
System.out.println("卢向阳");//输出
Scanner in = new Scanner(System.in);//输入,in打下划线的意思是in在用完后没有释放,在程序结束时加上in.close()就可以完美解决问题
int a,b;
a=in.nextInt();
b=in.nextInt();//输入int型数赋值给变量a
System.out.println(a+b);//数字不用双引号
}
}
解释:
Scanner in = new Scanner(System.in);
敲上这句话之后,上面会多一行:import java.util.Scanner;
Scanner in = new Scanner(System.in)
;中的in会打下划线的原因是:in在用完后没有释放,在程序结束时加上in.close()
就可以完美解决问题System.out.println(a)
;如果a是数字,不用双引号;a=in.nextInt();
输入整数赋值给a;in.nextLine();
输入一行;- 错误警告:
Exception in thread "main" java.util.InputMismatchException
;表示输入类型不匹配
final int a=1;
a=2;//错误
解释:
- 会有错误,因为final类型是一个常量,不能改变,即:不能再被赋值
System.out.println("嘻嘻嘻嘻嘻");
System.out.print("xxxxxxxx");
解释:
System.out.println(" ");
有ln表示输出之后换行;System.out.print(" ");
没有ln表示输出之后不换行;
基本类型
boolean 布尔
byte 字节
short/int/long 短整数/整数/长整数
float/double 浮点数
char 字符
string 定义字符串
例:string b = “abcd”;
定义long类型最好在结尾加上L,就不会报错
例:long num=2147483650L
定义float类型必须加f,double类型可以加d也可以不加
Day2–浮点数计算,运算的优先级,类型转换
2.1 浮点数运算
System.out.println(10/3);
输出:3
解释:
- 整数除整数结果只能是整数
- 10和10.0是两个完全不同的数
- 上句中要想的到想要的结果,把10和3任意一个改为浮点数就可以,即:当浮点数和整数一块运算时,java会把整数转换成浮点数来运算
double a;
定义浮点数;给a输入赋值:a=in.nextInt();
或者a=in.nextDouble();
都可以
2.2 运算的优先级
移位运算符 >>,<<
“>>”:右移,除2
“<<”:左移,乘2
2.3 强制类型转换
java会自动将int转为double,但要把double转为int就需要强制类型转换;
格式:(int)(表达式)
例:System.out.println((int)((a+b/12.0)*0.3048*100));
Day 3-判断,循环
3.1 优先级:
- 所有的关系运算符的优先级比算数运算符的优先级低,但比赋值运算符的高
- ==和!=的优先级比其他的低
2.1.例如 :5>3 ==6>4 先算两个大于,在判断等于
3.2 浮点数比较
double a=1.0;
double b=0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1;
System.out.println(Math.abs(a-b)<1e-6);
1e-6
表示1X10^-6;
3.3 判断
- 调试:
设置断点----> debug(小虫子)------>F5(单步进行)------->右上角java返回代码界面
- if语句
int a=in.nextInt();
int b=in.nextInt();
int c=in.nextInt();
if(a>b)
{
if(a>c)
System.out.println("a is max");
else
System.out.println("c is max");
}
else
{
if(b>c)
System.out.println("b is max");
else
System.out.println("c is max");
}
注:if()……else if()……else
if后面不能打“;”,否则,程序认为if后面执行一句空语句;
- switch–case多分支语句
int a;
a=in.nextInt();
switch(a)//a只能是整型或者整型表达式
{
case 1:
System.out.println("1");
break;
case 2:
System.out.println("2");
break;
case 3:
System.out.println("3");
break;
case 4:
System.out.println("4");
break;
case 5:
System.out.println("5");
break;
default:
System.out.println("YES");//上述任何一种情况都不匹配,执行此句;
}
switch()里面只能是整型的表达式,当所有case都不瞒足时,执行default后面的语句,切记:break不能忘了。
3.4 while()循环
- while循环
Scanner in =new Scanner(System.in);
int m;
while(true)
{
System.out.print("请投币:");
m=in.nextInt();
if (m>=10)
{
System.out.println("*****************");
System.out.println("* Java城际铁路专线 *");
System.out.println("* 无指定座位票价 *");
System.out.println("* 票件:10元 *");
System.out.println("*****************");
System.out.println("找零:"+(m-10));
}
else
{
System.out.println("金额不够");
System.out.println("退款:"+m);
break;
}
}
注:
while()里面也可以是判断式子:例如:while(a>=0){ }
do-while循环中while()后面有个分号。
3.5 猜数字(随机数)
Scanner in = new Scanner(System.in);
int a=(int)(Math.random()*100+1);//random函数给出随机数:[0,1)--->[1,100]
System.out.print("请输入您猜的数字:");
int b;
b=in.nextInt();
while(a!=b)
{
if(b>a)
{
System.out.println("您猜的数字大了!");
System.out.println("请重新猜!");
System.out.print("请输入您猜的数字:");
b=in.nextInt();
}
else
{
System.out.println("您猜的数字小了!");
System.out.println("请重新猜!");
System.out.print("请输入您猜的数字:");
b=in.nextInt();
}
}
System.out.println("恭喜你猜对了!");
int a=Math.random();
产生[1,0)之间的浮点数
int a=(int)(Math.random()*100+1);
产生[1,100]之间的整数
3.6 for(; ;)循环
求阶乘
Scanner in = new Scanner(System.in);
int a=in.nextInt();
int sum=1;
int i;
for(i=1;i<=a;i++)
{
sum=sum*i;
}
System.out.println(sum);
boolean p=true;
布尔类型
continue 跳出本次循环,继续下次循环
break 跳出循环
Day 4–数组
4.1 一维数组
创建数组
格式: <类型>[] <名字> = new <类型>[数组大小]
例:
int[] a=new int[100]; double[] b=new double[100];
错误警告—>数组越界: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1 at 学习5.学习5.main(学习5.java:11)
int[] a=new int[100];
int i;
for(i=0;i<10;i++)
{
a[i]=in.nextInt();
}
int sum=0;
for(i=0;i<a.length;i++)
{
sum=sum+a[i];
}
System.out.println(sum);
System.out.println((double)(sum/10.0));
注:
a.length
表明当前数组的元素个数
new创建的数组会得到默认的0值
也可以不用new来创建,int[] a= {1,2,3,4,};
这样也可以
4.2 java数组变量
int[] a1= {1,2,3,4,5};
int[] a2=a1;
int i;
for(i=0;i<a2.length;i++)
{
a2[i]++;
}
for(i=0;i<a1.length;i++)
{
System.out.println(a1[i]);
}
数组变量是数组的管理者而非数组本身,数组必须创建出来然后交给数组变量来管理,数值变量之间的赋值是管理权限的赋予:
int[] a2=a1;
java数组变量名就像一个管理者,int[] a2=a1;
可以理解为:让a1和a2管理同一块数组。
4.3 二维数组
int[][] a=new int[3][5];
三行无列的二维数组