java初学小案例

  • 案例1:
    定义3个int类型变量并赋值,求出最小值,并打印输出到控制台。
int a = 5;
int b = 6;
int c = 4;
int max; //定义最大值
//a 与 b 比较,得出一个最大值赋值给max
if (a > b) {
  	max = a;
}else {
  	max = b;
}
//如果max 比 c 大,不执行下面这个if语句,否则 最大值是c
if (max < c) {
  	max = c;
}
System.out.println("最大值max = " + max);
/*
   -----------------------------结果-----------------------------
   最大值max = 6
 */
  • 案例2:
    考试分数线为23分(包含23)以上为通过,18-23分为待定,18分以下(不包含18)为不通过。
    定义一个成绩,并使用if语句来判断该成绩是否通过,将结果打印到控制台,如: 成绩为25分,通过。
int num = 23; //定义考试分
if (num < 18) {    		 //num = 23 < 18 	false  不执行
     System.out.println("不通过!");
 } else if (num < 23) {  //num = 23 < 23   false
     System.out.println("特定!");
 } else {				// num = 23 default 其他条件未满足时,执行该语句
     System.out.println("通过!");
 }
 /*
   -----------------------------结果-----------------------------
   通过!
 */
  • 案例3:
    通过键盘录入一个四位数,分别取出每一位上的数字,并按照一定格式打印输出。
    如:"数字3251的个位是 1, 十位是 5, 百位是 2,千位是3。
//此为原始做法
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个四位数");
int num = scanner.nextInt();  //等待键盘录入
int g = num % 1000 % 100 % 10;//获取个位数
int s = num % 1000 % 100 / 10;//获取十位数
int b = num % 1000 / 100;	  //获取百位数
int q = num / 1000;			  //获取千位数

System.out.println("g = " + g);
System.out.println("s = " + s);
System.out.println("b = " + b);
System.out.println("q = " + q);


//代码提升
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个四位数");
int num = scanner.nextInt();  
int value = 10;  //倍数
int g = num % value;
int s = num /10 % value;
int b = num / 100 % value;
int q = num / 1000 % value;

System.out.println("g = " + g);
System.out.println("s = " + s);
System.out.println("b = " + b);
System.out.println("q = " + q);
/*
   -----------------------------结果-----------------------------
   请输入一个四位数
   2348
   g = 8
   s = 4
   b = 3
   q = 2
 */


//知识总结
/*
 提示:
                    1234 ( /1 )%10=4
                    1234 ( /10 ) %10=3
                    1234 ( /10/10 ) %10=2
                    1234 ( /10/10/10 ) %10=1
                                                                
                    int g = num % 10;         // 个  就除以 1     %10
                    int s = num /10 % 10;     // 十  就除以 10    %10
                    int b = num / 100 % 10;   // 百  就除以 100   %10
                    int q = num / 1000 % 10;  // 千  就除以 1000  %10
                    ...
*/
  • 案例4:
    模拟遥控器调整音量。定义一个音量,
    (1)如果值为1,那么打印输出“音量增大”;
    (2)如果值为2,那么打印输出“音量减小”;
    (3)如果值为3,那么打印输出“关机”;
    (4)若值为其他数字 ,打印“抱歉,您给出的数字不合法”。(switch语句)。
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个整数:");
int voice = scanner.nextInt();
  switch (voice) {
      case 1:	//当voice == 1  执行
          System.out.println("音量增大");
          break; //注意break;  该加时要加上,防止case穿透
      case 2:	//当voice == 2  执行
          System.out.println("音量减小");
          break;
      case 3:	//当voice == 3  执行
          System.out.println("关机");
          break;
      default: {//当voice 不等于上述条件  执行
          System.out.println("抱歉,您给出的数字不合法");
          break;
      }
  }
  /*
   -----------------------------结果-----------------------------
   请输入一个整数:
   5
   抱歉,您给出的数字不合法
 */
  • 案例5:
    (1)将1到100之间不能被3整除的数字累加求和并打印结果。
    (2)求出1到5之间所有整数之和并打印结果。
    (3)求出1到5之间所有奇数之和并打印结果。
    (4)求出1到5之间所有偶数的个数并打印结果。
int sum1 = 0;
int sum2 = 0;
int sum3 = 0;
int count = 0;
for (int i = 1; i < 100; i++) { //循环 1-100之间的数
    if (i % 3 != 0) {  //不能被3整除的数字
        sum1 += i;	   //求和
    }
    if (i <= 5) {	   //1到5之间所有整数
        sum2 += i;	   //求和
        if (i % 2 != 0) {1到5之间所有奇数
            sum3 += i; //求和
        } else {
            count++;   //1到5之间所有偶数的个数
        }
    }
}
System.out.println("1到100之间不能被3整除的数字累加求和 = " + sum1);
System.out.println("1到5之间所有整数之和 = " + sum2);
System.out.println("求出1到5之间所有奇数之和 = " + sum3);
System.out.println("求出1到5之间所有偶数的个数 = " + count);
/*
   -----------------------------结果-----------------------------
   1到100之间不能被3整除的数字累加求和 = 3267
   1到5之间所有整数之和 = 15
   求出1到5之间所有奇数之和 = 9
   求出1到5之间所有偶数的个数 = 2
 */
  • 案例6:
    求1~100以内(包含1和100)能同时被3,5整除的数的和,并将求出的和打印到控制台上。
int sum = 0;
for (int i = 1; i <= 100; i++) {
     if (i % 3 == 0 && i % 5 == 0) {
         //System.out.print(i + "\t");
         sum += i;`在这里插入代码片`
     }
 }
 System.out.println("1~100以内(包含1和100)能同时被3,5整除的数的和" + sum);
 /*
   -----------------------------结果-----------------------------
   1~100以内(包含1和100)能同时被3,5整除的数的和315
 */
  • 案例7:
    统计并获取10-100之间(包含10和100)个位与十位都为奇数的数字,并将数字和个数都打印到控制台上。
int g = 0;
int s = 0;
int count = 0;
for (int i = 10; i <= 100; i++) {  //10-100之间
    g = i % 10; //个位数
    s = i / 10; //十位数
    if (g % 2 != 0 && s % 2 != 0) { //个位与十位都为奇数的数字  
        count++; //条件成立,次数 + 1
        System.out.println("数字 = " + i);
    }
}

System.out.println("count = " + count);
/*
   -----------------------------结果-----------------------------
   数字 = 11
   数字 = 13
   数字 = 15
   数字 = 17
   数字 = 19
   数字 = 31
   数字 = 33
   .......
   count = 25
   */
  • 案例8:
    获取一个1-500之间(包含1和500)的随机数n,求0-n之间(包含0和n)的偶数和,并打印到控制台上。
int sum = 0;
 Random random = new Random();
 int n = random.nextInt(500 - 1 + 1) + 1;
  for (int i = 0; i <= n; i++) {
      if (i % 2 == 0) {
          sum += i;
      }
  }
 System.out.println("sum = " + sum);
  /*
   -----------------------------结果-----------------------------
   sum = 9900
  */

 //小知识
 /*
	求随机数 n - m 之间的数 ,包括n,m  
	int n = 10;
	int m = 50;
	//求 10-50 之间的书=数(包括10,50)
	random.nextInt(m - n + 1) + n;//(一定是最大的数 - 最小的数)   返回值 [10,51)之间
 */
  • 案例9:
    获取一个1-500之间(包含1和500)的随机数n,求0-n之间(包含0和n)的偶数和,并打印到控制台上。
Random random = new Random();
int sum = 0;
int n = random.nextInt(500 - 1 + 1) + 1;
   for (int i = 0; i <= n; i++) {
       if (i % 2 == 0) {
           sum += i;
       }
   }
   System.out.println("sum = " + sum);
   //ps : 对于随机数取值不明白,可以看 案例8 总结
   /*
   -----------------------------结果-----------------------------
   sum = 4692
   */
  • 案例10:
    定义一个长度为5的int类型数组,并使用随机数(1-100之间)为数组元素赋值
    (1) 打印输出数组的长度
    (2) 遍历输出每个元素
    (3) 求出元素值为偶数的个数。
    (4) 求出元素值为奇数的元素之和。
Random random = new Random();
int[] arr = new int[5]; //创建数组
int count = 0;			//偶数个数
int sum = 0;			//奇数和
for (int i = 0; i < arr.length; i++) {
   arr[i] =  random.nextInt(100 - 1 + 1) + 1;  //获取随机数(1-100之间)
    System.out.print("arr[" + (i + 1) +"] = " + arr[i] + "\t");
    if (arr[i] %2 == 0) {  //是否为偶数
        count++;           //条件成立 次数 + 1
    } else {
        sum += arr[i];     //奇数和
    }
}
System.out.println("\n数组的长度 = " + arr.length);
System.out.println("元素值为偶数的个数 = " + count);
System.out.println("元素值为奇数的元素之和 = " + sum);
/*
	-----------------------------结果随机-----------------------------
	arr[1] = 93	arr[2] = 28	arr[3] = 84	arr[4] = 67	arr[5] = 67	
	数组的长度 = 5
	元素值为偶数的个数 = 2
	元素值为奇数的元素之和 = 227
*/
  • 案例11:
    (1) 定义一个长度为10的int类型数组arr,随机数为数组循环赋值,随机数范围为10-99(包含10和99)
    (2) 提示用户键盘录入一个1-5之间(包含1和5,无需用代码判断,提示语即可)的整数num
    (3) 遍历arr,如果元素的十位或者个位数字是num的倍数(0视为任意数字的倍数),则输出该元素。
Scanner scanner = new Scanner(System.in);
Random random = new Random();
int[] arr = new int[10];
int g = 0;
int s = 0;
System.out.print("随机生成的数组中的元素为:\n");

for (int i = 0; i < arr.length; i++) {
    arr[i] = random.nextInt(99 - 10 + 1) + 10; // 随机数 10-99(包含10和99)
    System.out.print(arr[i] + "\t");
}
System.out.println("\n请输入 1 个 1-5之间的数字");
int num = scanner.nextInt();  //控制台输入

System.out.println("符合条件的元素为");
for (int i = 0; i < arr.length; i++) {
    g = arr[i] % 10; // 个位 = 随机数 % 10
    s = arr[i] / 10; // 十位 = 随机数 / 10
    if (g % num == 0 || s % num == 0 || g == 0 || s == 0) { //十位或者个位数字是num的倍数
        System.out.print(arr[i] + "\t");//条件成立输出该元素
    }
}
/*
	-----------------------------结果随机-----------------------------
	随机生成的数组中的元素为:
	85	24	55	24	11	69	92	37	23	94	
	请输入 1 个 1-5之间的数字
	2
	符合条件的元素为
	85	24	24	69	92	23	94	
*/
  • 案例12:
    (1) 定义一个长度为5的int型数组arr,提示用户输入5个1-60之间的数字作为数组元素
    (2) 生成2-10(范围包含2和10)之间的随机数num
    (3) 遍历数组arr,筛选出数组中不是num倍数的元素并输出。
Scanner scanner = new Scanner(System.in);
Random random = new Random();
int[] arr = new int[5];
for (int i = 0; i < arr.length; i++) {
     System.out.println("请输入第" +(i + 1)+ "个 1-60之间的数字");
     arr[i] = scanner.nextInt();//控制台输入
 }
 int randomNum = random.nextInt(10 - 2 + 1) + 2;//随机数 2-10(范围包含2和10)
 System.out.println("生成的随机数为: " + randomNum);
 System.out.println("符合条件的元素为: ");
 for (int i = 0; i < arr.length; i++) {
     if (arr[i] % randomNum != 0) { //判断不是num倍数的元素
         System.out.print(arr[i] + "\t"); //条件成立输出元素
     }
 }
 /*
 -----------------------------结果随机-----------------------------
 请输入第1个 1-60之间的数字
 53
 请输入第2个 1-60之间的数字
 24
 请输入第3个 1-60之间的数字
 33
 请输入第4个 1-60之间的数字
 45
 请输入第5个 1-60之间的数字
 10
 生成的随机数为: 4
 符合条件的元素为: 
 53	33	45	10	
 */