/*
java的跨平台的原因:JVM
JVM:负责java程序的执行
JRE:java程序运行时的环境,包含了JVMa
JDK:开发工具包,包含了JRE
为什么在环境变量path中设置jdk的安装路径:为了在任何路径下都能使用bin目录下的可执行命令
java源程序:先编译成jvm可以执行的字节码,使用javac指令,再使用java指令执行字节码文件(必须是含有main方法的那个字节码文件)
标识符:26个字母,0-9,_ $,不能以数字开头,不能和关键字同名
关键字:被java赋予的特殊含义的单词
常量:固定不变的量:字符串 整型 小数 布尔 字符 null
*/
class Demo { public static void main(String[] args) //JVM运行的入口 { System.out.println(66.66); System.out.println(66); System.out.println("hello"); System.out.println(true); System.out.println('w'); } } import java.util.Scanner; class Demo2 { public static void main(String[] args) { System.out.println(66); System.out.println(020); System.out.println(0x55); /* 变量:存储程序中用到的数据 其存储的数可以改变 变量只能存储一个数 */ Scanner sc = new Scanner(System.in); System.out.println("输入第一个数"); int a = sc.nextInt(); System.out.println("输入第二个数"); int c = sc.nextInt(); System.out.println(a+c); int b; } } class Demo3 { public static void main(String[] args) { /* 数据类型:决定变量所占内存空间的大小 整型:byte 1个字节 short 2个字节 int 4个字节 long 8个字节 浮点型:float 4 double 8 字符:char 2个字节 Unicode 布尔:boolean 1个字节 */ int a; //整数默认看成int类型 byte b =60; short s = 3276; long c = 234354345435l; // 小数默认看成double类型 float f = 45.6f; double d = 34.45d; char ch = '好'; char ch2 ='t'; boolean boo = true; boolean boo2 = false; } } class Demo4 { public static void main(String[] args) { //数据类型的级别有高低之分:从低到高 byte char,short-->int-->long-->float-->double byte b = 127;//自动类型转换 00000000 00000000 00000000 00000110 内部会自动砍掉前三个字节 00000110=6 //int --->byte System.out.println(b); byte a = 34; int c = 45; float f =34.5f; double d = 56.7; double sum = a+c+f+d;//通常从低级别转到高级别,会自动转 byte z =(byte)(b+10);//高级别到低级别--通常需要强制类型转换 //00000000 00000000 00000000 10001001 --->10001001--> 01110111=119 System.out.println(z); int m = 'a'; System.out.println(m);//ASCII char ch = 97; System.out.println(ch); System.out.println((char)5); } }
class Demo5 { public static void main(String[] args) { //转义字符: 通过'\'改变后边所跟字符的含义 \t //System.out.println("\"Hello\" \n \'World!\'"); //Windows系统下的换行:\r\n Unix Linx \n //字符串和任何类型的数据相连接,最终都是字符串 int a = 97; System.out.println("haha"+a+a);//+是连接符号 System.out.println("haha"+(a+a)); System.out.println("a="+a+"woeiurio"); } } class Demo6 { public static void main(String[] args) { System.out.println(5/2); System.out.println(-5%9);//结果的正负由被除数决定 int m = 3,n; //m++;//m = m+1; //System.out.println("m="+m); //n = m++;//++在后边儿,先取m的值赋给左边的变量,再m的值自增1, n = ++m;//++在前边儿,m的值先自增1,再赋给左边的变量 System.out.println("m="+m+",n="+n); int a = 135; System.out.println(a%10+a/10%10+a/100); //+= -+ *= /+ %= = m+=4;//m=m+4; short s = 5; //s = s+3;//编译不通过 s+=3;//编译通过,内部做了自动转换 System.out.println("s="+s); //关系运算符: > >= < <= == != 关系只有两种可能:成立:true 不成立:false int x = 34,y=56; System.out.println(x>y); System.out.println(x!=y); //逻辑运算符: && 并且 || 或者 int yu =67,math =89; System.out.println(yu>80 && math>80); /* true && true =true true && false = false false && true = false false && false = false */ System.out.println(yu>60 || math>80); /* true || true =true true || false = true false || true = true false || false = false */ System.out.println(!(yu>89)); // &&:短路与:如果左边的表达式为假了,就不再计算右边的表达式了 & 不管左边的是真是假都会计算右边的表达式 // ||:短路或: 如果左边的表达式为真了,就不再计算右边的表达式了 | 不管左边的是真是假都会计算右边的表达式 System.out.println(6|2); //三元运算符: ? : int c = 5>6?1:2; System.out.println(c); } }
/* 1.最有效率的方式算出2乘以8等于几?2*8 2.对两个整数变量的值进行互换(不需要第三方变量) 3.有三个整数,获取最大值,通过三元运算符完成。 4:将一个十进制数转成十六进制(使用位运算符) */ class Demo7 { public static void main(String[] args) { //1.最有效率的方式算出2乘以8等于几?2*8 /* 0010 1000 ------- */ //System.out.println(2<<3); // 2.对两个整数变量的值进行互换(不需要第三方变量) int a = 5,b = 6; /* a = a+b;//a和b的和可能溢出 b = a-b; a = a-b; a = a^b; b = a^b;//a^b^b a = a^b;//a^b^a //使用第三方变量 int c; c = a; a = b; b = c; System.out.println("a="+a+",b="+b); //3.有三个整数,获取最大值,通过三元运算符完成。 int x = 123,y = 45,z = 678; int m = x>y?x:y; int max =m>z?m:z; System.out.println("max="+max);*/ // 4:将一个十进制数转成十六进制(使用位运算符) int num = 60; int n1 = num&15; num = num>>>4; System.out.print(num); if(n1>9) System.out.print((char)(n1-10+'a')); } } //System.out.println();
class Demo8 { public static void main(String[] args) { int a = 4; /* if(a>1) { System.out.println("Hello World!"); System.out.println("haha"); } else { System.out.println("heihei"); System.out.println("heihei2"); } */ if(a<-1) if(a<-5) System.out.println("heihei"); else System.out.println("hehe"); //else总是和距离他最近的且没有对应的else的if对应 if(a>1) System.out.println("a>1"); if(a>2) System.out.println("a>2"); if(a>3) System.out.println("a>3"); //多重条件判断结构 if(a>1) System.out.println("a>1"); else if(a>2) System.out.println("a>2"); else if(a>3) System.out.println("a>3"); else System.out.println("无效"); } } //需求1:根据用户定义的数值不同。打印对应的星期。 //需求2:根据用于指定月份,打印该月份所属的季节。 //3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季 class Demo9 { public static void main(String[] args) { int week = 3; if(week==1) System.out.println("星期一"); else if(week==2) System.out.println("星期二"); else if(week==3) System.out.println("星期3"); else if(week==4) System.out.println("星期4"); else if(week==5) System.out.println("星期5"); else if(week==6) System.out.println("星期6"); else if(week==7) System.out.println("星期日"); else System.out.println("无效"); //需求2:根据用户指定月份,打印该月份所属的季节。 //3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季 int month = 11; if(month>=3 && month<=5) System.out.println("春季"); else if(month>=6 && month<=8) System.out.println("夏季"); else if(month>=9 && month<=11) System.out.println("秋季"); else if(month==12 || month ==1 || month==2) System.out.println("冬季"); else System.out.println("无效"); //其它写法 if(month<1 || month>12) System.out.println("无效"); else if(month>=3 && month<=5) System.out.println("春季"); else if(month>=6 && month<=8) System.out.println("夏季"); else if(month>=9 && month<=11) System.out.println("秋季"); else System.out.println("冬季"); } } /* switch语句 格式: switch(表达式) { case 取值1: 执行语句; break; case 取值2: 执行语句; break; …... default: 执行语句; break; } */ class Demo10 { public static void main(String[] args) { int a =6; //遇到break或结束的大括号才会停止执行 switch(a)//byte short int char jdk1.5(枚举) jdk1.7 字符串 { default: System.out.println("0"); case 1: System.out.println("1"); case 2: System.out.println("2"); case 3: System.out.println("3");break; case 4: System.out.println("4"); } //需求2:根据用户指定月份,打印该月份所属的季节。 //3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季 int month = 11; switch(month) { case 3: case 4: case 5:System.out.println("春季");break; case 6: case 7: case 8:System.out.println("夏季");break; case 9: case 10: case 11:System.out.println("秋季");break; case 12: case 1: case 2:System.out.println("冬季");break; default: System.out.println("无效");break; } //如果表达式的值是布尔类型或者是某一个范围中的数,就只能使用if结构 //如果表达式的值是一个确定的值,并且在byte short int char这几种数据类型之中,则使用 switch比较好 //实现一个四则运算 int a = 23,b = 4; char ch = '*'; switch(ch) { case '+':System.out.println(a+b);break; case '-':System.out.println(a-b);break; case '*':System.out.println(a*b);break; case '/':System.out.println(a/b);break; default: System.out.println("无效");break; } } } /* 循环结构:执行相同的或具有特定规律的功能 while(循环条件) { 需要重复执行的代码----循环体 } do { 需要重复执行的代码---循环体 }while(循环条件); */ class Demo11 { public static void main(String[] args) { int i=6; while(i<=5) { System.out.println("Hello World!"); i++; } //先判断条件,如果条件为真,则执行循环体一次,再回去判断条件,如果条件还为真,再执行循环体一次, // 如此反复,直到条件为假,循环结束 int j =6; do { System.out.println("Hello World!"); j++; }while(j<=5); //限执行循环体一次,再判断条件是否为真,如果条件为真,再执行循环体,直到条件为假,循环结束 //do{}while();会至少执行循环体一次,while(){}当条件一开始就为假时,循环一次都不执行 } } /* for(初始化表达式;循环条件表达式;循环后的操作表达式) { 执行语句; } */ class Demo12 { public static void main(String[] args) { for(int i=1;i<=5;i++) { System.out.println("Hello World!"); } //先执行表达式1,再判断条件,如果条件为真,执行循环体,再执行表达式3,再判断条件,如果条件为真,再执行循环体 //再执行表达式3,再判断条件,直到条件为假,结束 System.out.println(i);//找不到符号 int j=1; while(j<=5) { System.out.println("Hello World!"); j++; } System.out.println(j); //变量使用作用范围的(作用域):从变量被定义的位置开始,到变量所在的大括号结束 //循环中使用的变量在循环结束后如果不再使用,适合使用for循环(节省内存),否则适合选择while()或do{}while(); } } class Demo13 { public static void main(String[] args) { //省略表达式1 int i=1; for(;i<=5;i++) { System.out.println("Hello World!"); } //省略表达式2 ----死循环 for(int i=1;;i++) { System.out.println("Hello World!"); } //省略表达式3 for(int i=1;i<=5;) { System.out.println("Hello World!"); i++; } //三个表达式都省略 for(;;)//---死循环 { } } }
以下为作业以及我的解答。太简单的我就不做了!
1.计算 n+(n-1)+(n-2)+....+3+2+1的值 问题:计算级数 n+(n-1)+(n-2)+....+3+2+1的值,其中n的值由用户输入, 例如:如果输入的数是8,则计算8+7+6+5+4+3+2+1的值,计算结果应该是36 import java.text.DecimalFormat; import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner in= new Scanner(System.in); int i= in.nextInt(); int count=0; for(int j=i;j>=1;j--) { count+=j; } System.out.println(count); } } 2.计算正整数各位数的和 问题:编写一个程序,让用户输入一个正整数值,然后计算该数各位数的和, 例如:如果输入的数是123,则计算结果是6 import java.text.DecimalFormat; import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner in = new Scanner(System.in); int i = in.nextInt(); int result = 0; while (i > 0) { int shuzi = i % 10; i = i / 10; result += shuzi; } System.out.println(result); } } 3.求一个数的阶乘 例如: 5! 5*4*3*2*1 0!==1 import java.text.DecimalFormat; import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner in = new Scanner(System.in); int x = in.nextInt(); int result = 1; for (int i = 1; i <= x; i++) { result *= i; } System.out.println(result); } } 4.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。 例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。 import java.text.DecimalFormat; import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner in = new Scanner(System.in); int x = in.nextInt(); int y = x; int count = in.nextInt(); int result = 0; for (int i = 1; i < count; i++) { x = x * 10 + y; System.out.println(x); result = result + x; } System.out.println(result + y); } } 5.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和 import java.text.DecimalFormat; import java.util.Scanner; public class Test { public static void main(String[] args) { double x = 2; double y = 1; double result = 0; for (int i = 0; i < 5; i++) { System.out.println(x / y); result = result + x / y; x = x + y; y = x - y; } System.out.println(result); } } 6.根据要求显示字符 问题:编写一个程序,用于接收用户输入的数,然后显示从0到该数为止表示的所有字符, 询问用户是否愿意再次继续同样的过程 7.编写一个程序,根据输入某个班级学员的成绩,计算该班级学员的平均成绩, 班级的人数要求用户输入,根据输入的人数,分别录入学员的成绩,计算该 班级学员的平均成绩,并显示计算结果,最后询问用户是否继续, 直到用户自己确定要结束程序退出
1:编写一个程序,用于生成如图所示的输出结果,要求根据用户输入的一个整数,
输出一个数字组成的图案
例如:
55555
4444
333
22
1
1
22
333
4444
55555
2.打印一个实心菱形图案
*
***
*****
*******
*****
***
*
3.打印一个空心菱形图案
问题:用*号打印一个如下的空心菱形图案 :
*
* *
* *
* *
* *
* *
*
4:求1!+2!+3!+4!+5!+6!+7!+8!+9!+10!
1, import java.text.DecimalFormat; import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner in= new Scanner(System.in); int x=in.nextInt(); for(int i=x;i>0;i--) { for(int j=i;j>0;j--) { System.out.print(i); } System.out.println(); } for(int i=1;i<=x;i++) { for(int j=i;j>=1;j--) { System.out.print(i); } System.out.println(); } } } 2, import java.text.DecimalFormat; import java.util.Scanner; public class Test { public static void main(String[] args) { for (int i = 1; i <= 4; i++) { for (int x = i; x <= 4; x++) { System.out.print(" "); } for (int j = 1; j <= i * 2 - 1; j++) { System.out.print("*"); } System.out.println(); } for (int i = 3; i >= 1; i--) { for(int x=i;x<=3;x++) { System.out.print(" "); } for (int j = i * 2 - 1; j >= 1; j--) { System.out.print("*"); } System.out.println(); } } } 3, import java.text.DecimalFormat; import java.util.Scanner; public class Test { public static void main(String[] args) { int x = 1; int count = 0; for (int i = 1; i <= 10; i++) { for (int j = 1; j <= i; j++) { x *= j; } count += x; } System.out.println(count); } }
时间: 2024-09-30 08:44:02