【IAVA学习笔记02】 for、 while 、switch、数组

打包成方法

在这里插入图片描述

冒泡排序

冒泡排序: 如果有四个数,那么只要比较三轮。第一次比较三次,第二次比较二次,最后一次比较一次

代码练习

package com.situ.day03;

import org.junit.jupiter.api.Test;
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class situ{
    //作业 07 15
    // 猜大猜小 不会

    /**
     * 1、输出一下结构:
     * 1
     * 12
     * 123
     * 1234
     * 12345
     */
    @Test
    public void test1() {
        for (int i = 1; i <= 5; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print(j);
            }
            System.out.println();
        }
    }

    /**
     * 打印正三角形和倒三角形
     * i = 1  j = 1 0    5   4
     * i = 2 j = 3  1     4
     * i = 3 j = 5  2     3
     * i = 4 j = 7  3     2
     * i = 5 j = 9  4    1
     */
    @Test
    public void test2() {

        for (int i = 1; i <= 6; i++) {
            for (int j = 6 - i; j > 0; j--) {
                System.out.print(" ");

            }

            for (int k = 1; k <= i + (i - 1); k++) {
                System.out.print("*");

            }
            System.out.println();
        }
    }

    /**
     * 倒三角形
     * i = 1 j = 11
     * i = 2 j = 9
     * i = 3 j = 7
     */
    @Test
    public void test3() {
        for (int i = 1; i <= 6; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print(" ");
            }
            for (int j = 1; j <= 13 - i * 2; j++) {
                System.out.print("*");
            }

            System.out.println();

        }


        // System.out.println();


    }

    /**
     * 计算1-100以内所有奇数的和以及所有偶数的和,分别打印出来。
     */

    @Test
    public void test4() {
        int even = 0;
        int odd = 0;
        for (int i = 1; i <= 100; i++) {
            if (i % 2 == 0) {
                even += i;

            } else if (i % 2 != 0) {
                odd += i;

            }
        }
        System.out.println("偶数和是" + even);
        System.out.println("奇数和是" + odd);

    }

    /**
     * 用for循环输出1—1000之间能被5整除的数,且每行输出3个
     */
    @Test
    public void test5() {
        for (int i = 1; i <= 3; i++) {
           // if ()
               // System.out.print(+" ");


        }

    }

    /**
     * 计算9的阶乘
     */


    @Test
    public void test6(){
        int sum = 1;
        for (int i = 1; i <= 9 ; i++){
            sum *= i;

        }
        System.out.println( sum);

    }
    /**
     * 使用循环打印100-200之间所有的素数(只能被1和自己整除的数叫素数)
     *
     *
     */

    @Test
    public void test7(){
        System.out.println("101-200所有素数:");
        int count = 0;
        for (int i = 100; i <= 200; i++) {
            for (int j = 2; j <= i; j++) {
                if (i == j){
                    System.out.print(i+" ");
                    count++;
                    break;
                }else if(i%j==0){
                    break;
                }
            }
        }
        System.out.println("\n共有:"+count+"个素数");

    }

    // 数组的定义
    public static void main(String[] args){
        int[] array = new int[4];
        array[0] = 1;
    }

    @Test
    public void test8(){

        int[] array = { 40,17,21,1};
        for (int i = 1 ; i <= array.length - 1; i++){
            for( int j = 0; j < array.length - i ;j++ ){
                if( array[j] > array[j + 1]){
                    int temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                }
            }
        }

        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i] + " ");
        }
    }


    // 二维数组 数组下标从零开始
    @Test
    public void test9(){
        int[][] array = new int[2][3];
        array[0][0] = 1;
        array[0][1] = 2;
        array[0][2] = 3;
        array[1][0] = 4;
        array[1][1] = 5;
        array[1][2] = 6;
        for( int i = 0; i < array.length; i++){
            for( int j = 0; j < array[i].length; j++){
                System.out.println(array[i][j]);
            }

        }

    }
    /**
     * 1、int[] scores={0,0,1,2,3,5,4,5,2,8,7,6,9,5,4,8,3,1,0,2,4,8,7,9,5,2,1,2,3,9};
     * 求出上面数组中0-9分别出现的次数
     * 双重for循环
     */

    @Test
    public void test10(){
        int count = 0 ;
        int[] score = {0,0,1,2,3,5,4,5,2,8,7,6,9,5,4,8,3,1,0,2,4,8,7,9,5,2,1,2,3,9};
        for (int j = 0; j <= 9; j++){
            count = 0;
            for (int i = 1; i <= score.length; i++){
               if (score[i - 1] == j){
                   count ++;
                   //continue;

               }


            }
            System.out.println(count);





        }

    }
    /**
     * int[] scores={0,0,1,2,3,5,4,5,2,8,7,6,9,5,4,8,3,1,0,2,4,8,7,9,5,2,1,2,3,9};
     * 要求求出其中的奇数个数和偶数个数。
     */

    @Test
    public void test11(){
        int even = 0;
        int odd = 0;
        int[] scores={0,0,1,2,3,5,4,5,2,8,7,6,9,5,4,8,3,1,0,2,4,8,7,9,5,2,1,2,3,9};
        for (int i = 1; i <= scores.length - 1; i ++){
            if (scores[i - 1] % 2 ==0){
                even++;

            }
            else  {
                odd++;

            }
        }
        System.out.println("偶数个数" + even);
        System.out.println("奇数个数" + odd);

    }

    /**
     * 5、 0.6332的数据类型是()
     * A float B double C Float D Double
     *
     * B  默认为double型,如果为float型需要加上f显示说明,即0.6332f
     *
     * 6、 Java 中 main() 函数的返回值是什么 ?
     * A 、 String
     * B 、 int
     * C 、 char
     * D 、 void
     *D
     *
     * 7 、如下哪个字串在Java 中可作为自定义标识符?
     * A 、 $number
     * B 、 super
     * C 、 3number
     * D 、 #number
     *  A 标识符由字母、数字、下划线“_”、美元符号“$”或者人民币符号“¥”组成,并且首字母不能是数字。
     * 2) 不能把关键字和保留字作为标识符。
     * #number 非法“#”开头,super是关键字。3number 数字开头。
     * 以上都不可以作为关键字。
     *
     *
     *
     * 8 、下面的代码段中,执行之后 i  和 j  的值是什么 ?
     * int i = 1;
     * int j;
     * j = i++;
     * A 、  1, 1
     * B 、 1, 2
     * C 、 2, 1
     * D 、 2, 2
     *
     *
     * 9 、下面哪个赋值语句不是合法的?
     * A 、 float a = 2.0
     * B 、 double b = 2.0
     * C 、 int c = 2
     * D 、 long d = 2
     * java中小数默认是double类型,整数的默认类型是int。
     * 如果想把小数赋值给float类型,float f = 10.1f;
     *
     * A
     *
     *
     *
     * 10 、下面哪个是 main() 函数的合法参数 ?
     * A 、 char args[]
     * B 、 char args[][]
     * C 、 String[] args
     * D 、 String args
     *
     * argument
     *
     * 11 、已知表达式 int[] m = {0, 1, 2, 3, 4, 5, 6 };
     * 下面哪个表达式的值与数组最大下标数相等?
     * A 、  m.length()
     * B 、 m.length-1
     * C 、 m.length()+1
     * D 、 m.length+1
     *
     *
     * 13 在Java中,属于整数类型变量的是( )
     * A.single    B.double
     * C.byte     D.char 
     *
     *
     *
     *
     * 14.下列语句哪一个正确()
     * A. Java程序经编译后会产生machine code
     * B. Java程序经编译后会产生byte code(字节码)
     * C. Java程序经编译后会产生DLL
     * D.以上都不正确
     *
     * B
     *
     *   bytecode(字节码文件),也就是.class文件。Java字节码是Java源文件编译产生的中间文件,java程序在编译(javac .java文件名 指令)后会产生字节码文件,也就是.class文件。然后根据虚拟机所在系统(l例如:xp、win7、Linux)的不同将字节码文件转变为不同的可执行文件,这也是java程序可跨平台的根据。
     *
     * machine code是机器码,是电脑的CPU可直接解读的数据。java是高级语言,产生的是字节码,电脑只能运行机器码。Java在运行的时候需要依赖JVM来翻译成01的机器码。
     *
     * DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型,同样也不是Java程序经编译后会产生的
     *
     */
    /**
     * 5 B
     * 6 D
     * 7 A
     * 8 C
     * 9 D
     * 10 C
     * 11 B
     * 13 C
     * 14 D
     * 16
     * char[] array = {'a' , 'b', 'c', 'b' , 'a'};
     * array[0] = array[array.length - 1 ]
     * array[1] = array[array.length - 2]
     * array[i] = array[array.length - (i + 1)]
     *
     *
     *
     */


    /**
     * 输入一行字符串,分别统计出其中英文字母、空格、数字和其它字符的个数。
     */

    @Test
    public void test12(){
        //char[] array = {'a' , 'b', 'c', 'b' , 'a'};
        int letter = 0;
        int space = 0;
        int num = 0;
        int other = 0;
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入字符串");
        String  str = scanner.nextLine();//char[] array = scanner.nextInt;
        System.out.println(str);
        char[] array = str.toCharArray();

        for( int i = 0 ; i <= array.length - 1; i ++){
           // array[i] = str.charAt(i);
            if ((array[i] >= 97 && array[i] <=122) ||(array[i] >= 65 && array[i] <= 90)){
                letter++;
            }
            else  if(array[i] == 32){
                space++;
            }
            else if(array[i] >= 48 && array[i] <= 57){
                num++;
            }
            else{
                other++;
            }

        }
        System.out.println("字母个数" + letter);
        System.out.println("空格个数" + space);
        System.out.println("数字个数" + num);
        System.out.println("其他字符个数" + other);


    }

    /**
     * //   >=90   <=100   优秀
     * //   >=80    <90       良好
     * //   >=70    <80       一般
     * //   >=60    <70      及格
     * //   <60                   不及格
     */
    @Test
    public void test13(){
        Scanner scanner = new Scanner (System.in);
        System.out.println("请输入学生成绩");
        int score = scanner.nextInt();
        int grade = score / 10 ;
        switch(grade){
            case 10:
            case 9:
                System.out.println("优秀");
                break;
            case 8 :
                System.out.println("良好");
                break;
            case 7 :
                System.out.println("一般");
                break;
            case 6 :
                System.out.println("及格");
                break;
            default:
                System.out.println("不及格");
                break;




        }

    }

    /**
     * 随机生成一个整数1-1000
     * 用户输入一个整数,程序给出与存储的数字是“大”或者“小”,知道用户猜到这个数字位置。
     * 如果中途用户希望程序退出,输入0可以退出。
     * int num = 200;
     * 猜吧!
     * 300
     * 太大了
     * 猜吧!
     * 180
     *  太小了
     * 猜吧!
     * 200
     * 恭喜你,猜对了
     * //随机生成一个整数1-1000
     */

    @Test
    public void test14(){
        Random random = new Random();
        int num1 = random.nextInt(1000) + 1 ;
        Scanner scanner = new Scanner (System.in);
        System.out.println("猜吧");
        int num2 = scanner.nextInt();
        if (num2 == 0){
            System.out.println("退出");

        }
        while (num2 >= 1 && num2 <= 1000){
            if (num2 == 0){
                System.out.println("退出");
                break;
            }

            if (num2 > num1){
                System.out.println("太大了");
                num2 = scanner.nextInt();
            }
             else if (num2 < num1){
                System.out.println("太小了");
                num2 = scanner.nextInt();

            }
             else if (num2 == num1){
                System.out.println("猜对了");
                break;
            }

        }







    }



}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值