|
@@ -0,0 +1,305 @@
|
|
|
+package com.sf.day02;
|
|
|
+
|
|
|
+import org.junit.jupiter.api.Test;
|
|
|
+import sun.java2d.pipe.SpanIterator;
|
|
|
+
|
|
|
+import java.security.PublicKey;
|
|
|
+import java.util.Scanner;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 第二天的java类
|
|
|
+ */
|
|
|
+public class T {
|
|
|
+ /**
|
|
|
+ * 作业问题:
|
|
|
+ * 1、三目运算符
|
|
|
+ * 2、奇数偶数问题
|
|
|
+ */
|
|
|
+ @Test
|
|
|
+ public void t1(){
|
|
|
+ // 97 是奇数还是偶数?
|
|
|
+ int num = 97;
|
|
|
+ /**
|
|
|
+ * 三目运算符的语法结构:
|
|
|
+ * boolean flag = (条件表达式)?返回值1:返回值2;
|
|
|
+ *
|
|
|
+ */
|
|
|
+ boolean flag = num % 2 == 0 ? true:false;
|
|
|
+// if(num % 2 == 0){
|
|
|
+// System.out.println("偶数");
|
|
|
+// }else {
|
|
|
+// System.out.println("奇数");
|
|
|
+// }
|
|
|
+ System.out.println(flag);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void t2(){
|
|
|
+ /**
|
|
|
+ * a++ ++a 区别:
|
|
|
+ * num++ 和 ++num 在没有接收值的情况下效果一样,都是对变量进行+1操作
|
|
|
+ * 有接收值的情况下:int C = num++;
|
|
|
+ * 满足:先赋值后运算
|
|
|
+ * int C = ++num;
|
|
|
+ * 满足:先运算后赋值
|
|
|
+ * 总结: 【先赋值后运算 先运算后赋值】 ==> 在乎赋值的先后,都进行运算(变量)
|
|
|
+ *
|
|
|
+ * +=:
|
|
|
+ * int a = 1;
|
|
|
+ * a += 1; // a = a+1
|
|
|
+ *
|
|
|
+ * & &&:
|
|
|
+ * & 逻辑与 前后都运行
|
|
|
+ * && 短路与 :前面为假 后面被短路 若前面为真 后面需要运行
|
|
|
+ * | || :
|
|
|
+ * | 逻辑或 : 无论真假前后都需要运行
|
|
|
+ * || 短路或 :若前面为真 后面被短路 若前面为假,后面运行
|
|
|
+ *
|
|
|
+ * 异或: 相同为假 相异为真
|
|
|
+ *
|
|
|
+ */
|
|
|
+ int num = 10;
|
|
|
+// num++; // result : 11
|
|
|
+// ++num; // result : 11
|
|
|
+// int c = num++; // num = 11; c = 10;
|
|
|
+ int c = ++num;
|
|
|
+ System.out.println("num = "+num);
|
|
|
+ System.out.println("c = "+c);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void t3() {
|
|
|
+// int x = 1;
|
|
|
+// int y=1;
|
|
|
+// if(x++ == 2 & ++y == 2){
|
|
|
+// x =7;
|
|
|
+// }
|
|
|
+// System.out.println("x="+x+",y="+y);
|
|
|
+// }
|
|
|
+
|
|
|
+// int x = 1, y = 1;
|
|
|
+// if (x++ == 2 && ++y == 2) {
|
|
|
+// x = 7;
|
|
|
+// }
|
|
|
+// System.out.println("x=" + x + ",y=" + y);
|
|
|
+
|
|
|
+// int x = 1,y = 1;
|
|
|
+// if(x++==1 | ++y==1){
|
|
|
+// x =7;
|
|
|
+// }
|
|
|
+// System.out.println("x="+x+",y="+y);
|
|
|
+ int x = 1,y = 1;
|
|
|
+ if(x++==1 || ++y==1){
|
|
|
+ x =7;
|
|
|
+ }
|
|
|
+ System.out.println("x="+x+",y="+y);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void t4(){
|
|
|
+ /**
|
|
|
+ * 三目运算符:
|
|
|
+ * 语法格式:数据类型 变量名 = (条件表达式)?返回值1:返回值2
|
|
|
+ * ps:返回值1:返回值2 = 数据类型
|
|
|
+ * 求出三个数中的最大值:
|
|
|
+ * int x = 9, y =5 ,z = 8;
|
|
|
+ */
|
|
|
+ int x = 7, y =5 ,z = 8;
|
|
|
+ x = (x>y)?x:y;
|
|
|
+ x= (x>z)?x:z;
|
|
|
+ System.out.println(x);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 从键盘输入 用主函数进行测试
|
|
|
+ */
|
|
|
+ public static void main(String[] args) {
|
|
|
+ Scanner scan = new Scanner(System.in);
|
|
|
+// // 输入一个名字 年龄 true 体重 123.4
|
|
|
+// System.out.println("请输入名字~");
|
|
|
+// String name = scan.next();
|
|
|
+// System.out.println(name);
|
|
|
+// System.out.println("请输入年龄~");
|
|
|
+// int age = scan.nextInt();
|
|
|
+// System.out.println(age);
|
|
|
+// System.out.println("请输入true~");
|
|
|
+// boolean flag = scan.nextBoolean();
|
|
|
+// System.out.println(flag);
|
|
|
+// System.out.println("请输入体重~");
|
|
|
+// double weight = scan.nextDouble();
|
|
|
+// System.out.println(weight);
|
|
|
+ int score = scan.nextInt();
|
|
|
+ if(score <= 100 && score >=0){
|
|
|
+ if(score < 60){
|
|
|
+ System.out.println("DDD");
|
|
|
+ }else if (score>=60 && score <80){
|
|
|
+ System.out.println("ccc");
|
|
|
+ }else if (score>=80 && score <90){
|
|
|
+ System.out.println("bbb");
|
|
|
+ }else {
|
|
|
+ System.out.println("aaa");
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ System.out.println("输入有误");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 随机数 Math
|
|
|
+ */
|
|
|
+ @Test
|
|
|
+ public void t6(){
|
|
|
+// for (int i = 0; i < 33; i++) {
|
|
|
+// double random = Math.random(); //[0,1)
|
|
|
+// System.out.println(random);
|
|
|
+// }
|
|
|
+ double random = Math.random(); //[0,1)
|
|
|
+ System.out.println(random);
|
|
|
+ //随机生成一个0-99的整数 [1,100]
|
|
|
+ int num = (int) (Math.random()*100+1);
|
|
|
+ System.out.println(num);
|
|
|
+ //[5,78] 整型 73/74 + 5 ---> int [a,b] b-a+1 +a
|
|
|
+ int num2 = (int) (Math.random() * 74 +5);
|
|
|
+ int num3 = (int) (Math.random()*13+78);
|
|
|
+ System.out.println(num3);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void t7(){
|
|
|
+ int age = 16;
|
|
|
+ if(age>=18){
|
|
|
+ System.out.println("成年人");
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ System.out.println("未成年人");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * switch(age){
|
|
|
+ * case 1:
|
|
|
+ * //代码体
|
|
|
+ * break;
|
|
|
+ * case 1:
|
|
|
+ * * //代码体
|
|
|
+ * * break;
|
|
|
+ * default: //可选
|
|
|
+ *
|
|
|
+ * }
|
|
|
+ */
|
|
|
+ @Test
|
|
|
+ public void t8(){
|
|
|
+ //判断季节
|
|
|
+ String season = "summer1";
|
|
|
+ switch (season){
|
|
|
+ case "spring":
|
|
|
+ case "spring1":
|
|
|
+ System.out.println("春天");
|
|
|
+ break;
|
|
|
+ case "summer":
|
|
|
+ case "summer1":
|
|
|
+ System.out.println("夏天");
|
|
|
+ break;
|
|
|
+ case "autumn":
|
|
|
+ System.out.println("秋天");
|
|
|
+ break;
|
|
|
+ case "winter":
|
|
|
+ System.out.println("冬天");
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ System.out.println("输入有误");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * for循环:
|
|
|
+ * for(1 初始化部分 2 条件判断 3 迭代){
|
|
|
+ * 4 循环体
|
|
|
+ * }
|
|
|
+ * 1 - 2 (判断 是否满足条件 是 -- 4 循环体 3-迭代 - 2条件判断(不 结束循环) )
|
|
|
+ *
|
|
|
+ *
|
|
|
+ * //双层for循环
|
|
|
+ * for(1 初始化部分 2 条件判断 3 迭代){
|
|
|
+ * 4 for( 5初始化部分 6 条件判断 7 迭代){
|
|
|
+ * 8 循环体
|
|
|
+ * }
|
|
|
+ * }
|
|
|
+ *
|
|
|
+ * 1 2 4 5 6 8 7 6 (是否满足) 是 8 - 6 3 - 2 4
|
|
|
+ */
|
|
|
+ @Test
|
|
|
+ public void t9(){
|
|
|
+ /**
|
|
|
+ * 打印 01-100 01 02 03 10
|
|
|
+ */
|
|
|
+// for (int i = 1;i<101;i++){
|
|
|
+// if(i<10){
|
|
|
+// System.out.println("0"+i);
|
|
|
+// }else {
|
|
|
+// System.out.println(i);
|
|
|
+// }
|
|
|
+// }
|
|
|
+ // 30 30.for+回车 itar
|
|
|
+ for (int i = 0; i < 30; i++) {
|
|
|
+ for (int i1 = 30; i1 > 0; i1--) {
|
|
|
+ System.out.println(30*30);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void t10(){
|
|
|
+ int sum = 0 ;
|
|
|
+ for (int i = 0; i <=100; i++) {
|
|
|
+ sum += i;
|
|
|
+ }
|
|
|
+ System.out.println(sum);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 遍历1-100以内的偶数,
|
|
|
+ * 并获取偶数的个数,
|
|
|
+ * 获取所有的偶数的和
|
|
|
+ */
|
|
|
+ @Test
|
|
|
+ public void t11(){
|
|
|
+ int sum = 0;
|
|
|
+ int count = 0;
|
|
|
+ for (int i = 1; i <=100; i++) {
|
|
|
+ if(i % 2 == 0){
|
|
|
+ count++;
|
|
|
+ sum += i;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ System.out.println(sum);
|
|
|
+ System.out.println(count);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 输出1000以内所有的水仙花数,
|
|
|
+ * 所谓水仙花数是指一个3位数,
|
|
|
+ * 其各个位上数字立方和等于其本身
|
|
|
+ */
|
|
|
+ @Test
|
|
|
+ public void t13(){
|
|
|
+ int sum = 0; //所有水仙花的总额和
|
|
|
+ int count = 0; //水仙花的个数
|
|
|
+ for(int i = 100;i<1000;i++){
|
|
|
+ int gw = i%10;
|
|
|
+ int sw = i/10%10;
|
|
|
+ int bw = i/100;
|
|
|
+ if(gw*gw*gw + sw*sw*sw + bw*bw*bw == i){
|
|
|
+ count++;
|
|
|
+ sum += i;
|
|
|
+ System.out.println(i);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ System.out.println(sum);
|
|
|
+ System.out.println(count);
|
|
|
+ }
|
|
|
+}
|