打包成方法
冒泡排序
冒泡排序: 如果有四个数,那么只要比较三轮。第一次比较三次,第二次比较二次,最后一次比较一次
代码练习
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;
}
}
}
}