package day02;//声明包名
public class Demo01 {//声明类
//主方法,为程序的入口
//程序的执行从main开始,main结束则程序结束
public static void main(String[] args) {//主函数
//1.int:整型,4个字节,-21个多亿到21个多亿
int a = 250; //250为整数直接量,默认为int型
//int b = 10000000000; //编译错误,100亿默认为int型,但超出int范围了
//int型相关运算
System.out.println(5/2); //控制台输出2
System.out.println(8/2); //控制台输出4
System.out.println(2/8); //控制台输出0
System.out.println(5/2.0); //控制台输出2.5
int c = 2147483647;//定义int型变量,并赋值
c = c+1;//运算+1
System.out.println(c); //-2147483648,溢出了,溢出是需要避免的
}
}
2) long长整型
package day02;//声明包day02
public class Demo02 {//声明类Demo02
//主方法,为程序的入口
//程序的执行从main开始,main结束则程序结束
public static void main(String[] args) {//主函数
//2.long:长整型,8个字节,很大很大很大
//long a = 10000000000; //编译错误,100亿默认为int型,但超出int范围了
long b = 10000000000L; //100亿L为长整型的直接量
//若有可能溢出,建议在第1个数字后加L
long c = 1000000000*2*10L;
System.out.println(c); //200亿
long d = 1000000000*3*10L;
System.out.println(d); //溢出了
long e = 1000000000L*3*10;
System.out.println(e); //300亿
long f = System.currentTimeMillis();//输出当前系统毫秒
System.out.println(f); //
}
}
3) double浮点型
package day02;//声明包名
public class Demo03 {//声明类
//主方法,为程序的入口
//程序的执行从main开始,main结束则程序结束
public static void main(String[] args) {
//3.double:浮点型,8个字节,很大很大很大
double pi = 3.14; //3.14为浮点数直接量,默认为double型
float f = 3.14F; //表示float,需在数字后加F或f
double a=3.0,b=2.9;
System.out.println(a-b); //0.10000000000000009,舍入误差了,精确场不能使用
}
}
package day02;//声明包day02
public class Demo06 {//声明类Demo02
//主方法,为程序的入口
//程序的执行从main开始,main结束则程序结束
public static void main(String[] args) {
int a = 5; //定义int型变量,并赋值
long b = a; //自动类型转换
int c = (int)b; //强制类型转换
long d = 250; //自动类型转换
double e = 250; //自动类型转换
long f = 10000000000L;//定义long型变量,并赋值
int g = (int)f;//强制类型转换
System.out.println(g); //溢出,强转有可能会发生溢出
double h = 25.98765;//定义double型变量,并赋值
int i = (int)h;//强制类型转换
System.out.println(i); //25,强转有可能会丢失精度
byte b1 = 5;
byte b2 = 6;
byte b3 = (byte)(b1+b2);
System.out.println(b3);//11
System.out.println(2+2); //4
System.out.println(2+'2'); //52,2加上'2'的码50
System.out.println('2'+'2'); //100
}
}
2、基本运算符和表达式的使用
1) 求余运算符(%)
package day03;
public class Demo01 {
public static void main(String[] args) {
//求余运算符%
System.out.println(5%2); //1,商2余1
System.out.println(8%2); //0,商4余0--整除
System.out.println(2%8); //2,商0余2
System.out.println(8.5678%2); //0.5678
}
}
2) 自加自减(++,–)
package day03;
public class Demo02 {
public static void main(String[] args) {
//自加自减(++,--)
int a=5,b=5;//定义int类型变量a,b,并赋值
a++; //相当于a=a+1
++b; //相当于b=b+1
System.out.println(a); //6
System.out.println(b); //6
int c=5,d=5;//定义int类型变量c,d,并赋值
//1)将c++的值5赋值给e
//2)c自增1变为6
int e = c++;
//1)将++d的值6赋值给f
//2)d自增1变为6
int f = ++d;
System.out.println(c); //6
System.out.println(d); //6
System.out.println(e); //5
System.out.println(f); //6
int g=5,h=5;//定义int类型变量g,h,并赋值
//1)输出g--的值5
//2)g自减1变为4
System.out.println(g--); //5
System.out.println(g); //4
//1)输出--h的值4
//2)h自减1变为4
System.out.println(--h); //4
System.out.println(h); //4
}
}
package day04;
//switch...case的语句
public class Demo02 {
public static void main(String[] args) {
int num = 4;//定义变量num,并赋值为4
switch(num){ //byte,short,int,char
case 1: //if(num==1)
System.out.println(111);
break;
case 2: //以此为入口
System.out.println(222);
break; //跳出switch
case 3:
System.out.println(333);
break;
default: //所有case都未匹配时执行
System.out.println(666);
}
}
}
3) while语句
package day04;
//while语句
public class Demo03 {
public static void main(String[] args) {
int times = 0; //1.循环变量的初始化
while(times<10){ //2.循环的条件
System.out.println("行动是成功的阶梯");
times++; //3.循环变量的改变
}
System.out.println("over");
}
}
4) for循环
package day04;
//for循环
public class Demo06 {
public static void main(String[] args) {
int sum = 0; //定义临时变量
for(int i=1;i<=100;i++){//for循环,i逐增1,直到100
sum = sum+i;//计算和
}
System.out.println("sum="+sum);//输出结果
}
}
5) 成绩等级判断案例
package day04;
//成绩等级判断
import java.util.Scanner;//导包
public class Demo04 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);//键盘录入
System.out.println("请输入成绩:");//控制台输出---请输入成绩:
int score = scan.nextInt();//记录输入的成绩变量
if(score<0 || score>100){//判断成绩是否合理
System.out.println("成绩不合法");
}else if(score>=90){ //score>=0 && score<=100
System.out.println("A-优秀");//score>=90控制台输出A-优秀
}else if(score>=80){
System.out.println("B-良好");//score>=80控制台输出B-良好
}else if(score>=60){
System.out.println("C-中等");//score>=60控制台输出C-中等
}else{
System.out.println("D-不及格");//其他 控制台输出D-不及格
}
}
}
4、 数组的使用
package day04;
//数组的使用
public class Demo05 {
public static void main(String[] args) {
//int[] arr = new int[10];
//数组的定义
int[] arr1 = new int[4]; //0,0,0,0
int[] arr2 = {1,4,5,6}; //1,4,5,6
int[] arr3 = new int[]{1,4,5,6}; //1,4,5,6
int[] arr4;
//arr4 = {1,4,5,6}; //编译错误,此方式只能声明同时初始化
arr4 = new int[]{1,4,5,6}; //正确
int[] arr = new int[3];
System.out.println(arr.length);//控制台输出数组的长度(调用.length)
arr[0] = 100;//给数组中的第一个元素赋值为100
arr[1] = 200;//给数组中的第二个元素赋值为200
arr[2] = 300;//给数组中的第三个元素赋值为300
//arr[3] = 400; //数组下标越界异常
System.out.println(arr[arr.length-1]);//输出数组中的最后一个元素
for(int i=0;i<arr.length;i++){
arr[i] = (int)(Math.random()*100);//生成0-100的随机数并赋值给数组下标为i的元素
System.out.println(arr[i]);//输出数组中下标为i的元素
}
}
}
练习
1. 编制一个java application应用程序,把数组中已知的10个数字由小到大排序后输出
package day04;
import java.util.Arrays;
//编制一个java application应用程序
//把数组中已知的10个数字由小到大排序后输出
public class Demo07 {
public static void main(String[] args) {
int[] arr = new int[10];//定义一个10个元素的空数组
for(int i=0;i<arr.length;i++) {//for循环,遍历数组
int num =(int)(Math.random()*100);//随机生成0-100的整数
arr[i] = num;//并赋值给数组下标为i的元素
System.out.print(arr[i]+" ");//控制台输出,并加上空格
}
System.out.println();//转行
// Arrays.sort(arr);
rank(arr);//调用rank()函数排序
for(int i=0;i<arr.length;i++) {//for循环,遍历数组
System.out.print(arr[i]+" ");//输出每个元素
}
}
//数组排序(由小到大)
public static int[] rank(int[] arr) {
for(int i=0;i<arr.length-1;i++) {//控制轮
for(int j=0;j<arr.length-1-i;j++) {//控制次数
if(arr[j]>arr[j+1]){ //和它下一个元素比
int t = arr[j];//记录一个元素
arr[j] = arr[j+1];//交换
arr[j+1] = t;//记录的赋给下一个元素
}
}
}
return arr;//返回排序后的数组
}
}
还可调用Arrays.sort(arr);
2.编制一个java application应用程序,求3X2+4X-1=0的根
package day04;//包名
import java.util.Scanner;//导包
//编制一个java application应用程序,求3X2+4X-1=0的根
//记ax2+bx+c=0
//由公式可求根:若b*b-4*a*c<0则无实根;>0则有两个实根;=0则有两个相同的实根
public class Demo08 {//类名
public static void main(String[] args) {//主函数
Scanner scan = new Scanner(System.in);//键盘录入
System.out.println("请输入二次方前的系数a:");//控制台输出
double a = scan.nextDouble();//记录键盘录入的数
System.out.println("请输入一次方前的系数b:");//控制台输出
double b = scan.nextDouble();//记录键盘录入的数
System.out.println("请输入系数c:");//控制台输出
double c = scan.nextDouble();//记录键盘录入的数
if((b*b-4*a*c)<0) {//判断(b*b-4*a*c)<0是否成立
System.out.println("方程无实根");//控制台输出
}else if((b*b-4*a*c)==0){//判断(b*b-4*a*c)==0是否成立
System.out.println("方程有一个实根");
double x1 = ((-b)/(2*a));//计算根并赋值给变量x1
System.out.println("根为:"+x1);//控制台输出"根为:"+x1
}else {
System.out.println("方程有两个实根");
double x2 = ((-b-Math.sqrt(b*b-4*a*c))/(2*a));//计算根并赋值给变量x2
double x3 = ((-b+Math.sqrt(b*b-4*a*c))/(2*a));//计算根并赋值给变量x3
System.out.println("根为:"+x2+"和"+x3);//控制台输出结果
}
}
}