Switch
- 成绩大于60,合格 ;成绩低于60,不合格
import java.util.Scanner;
public class Learning {
public static void main(String[] args){
Scanner myScanner = new Scanner(System.in);
System.out.println("请输入:");
double score = myScanner.nextDouble();
switch((int)(score / 60)){
case 1 :
System.out.println("成绩合格");
break;
case 0 :
System.out.println("成绩不合格");
break;
default:
System.out.println("输入有误");
}
}
}
- 根据月份,打印季节;(3,4,5春季)(6,7,8夏季)(9,10,11秋季)(12,1,1冬季)
import java.util.Scanner;
public class Learning {
public static void main(String[] args){
Scanner myScanner = new Scanner(System.in);
System.out.println("请输入:");
int month = myScanner.nextInt();
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("输入有误");
}
}
}
for循环
import java.util.Scanner;
public class Learning {
public static void main(String[] args){
int num = 0;
int sum = 0;
for(int i = 1; i <= 100 ; i++){
if( i % 9 == 0 ){
System.out.println("i=" + i);
num++;
sum += i;
}
}
System.out.println("个数为:" + num);
System.out.println("总和为:" + sum);
}
}
多重循环嵌套
要求:1,输入成绩,分别计算三个班的平均成绩。
2,计算三个班级的总平均成绩。
3,统计三个班总的合格人数。
import java.util.Scanner;
public class Learning {
public static void main(String[] args){
Scanner myScanner = new Scanner(System.in);
//1,输入成绩,分别计算三个班的平均成绩。
//2,计算三个班级的总平均成绩。
//3,统计三个班总的合格人数(60分)。
int sum2 = 0;//总的平均成绩
int num = 0;//合格人数
for(int j = 1; j <= 3 ; j++){//三个班级
int sum1 = 0;//每个班的平均成绩,放在这里,新的班级会归零计算
for( int i = 1 ; i <= 5 ; i++){//每个班级输入五个成绩
System.out.println( j +"班第" + i + "个学生成绩为:");
double score = myScanner.nextDouble();//输入学生成绩
sum1 += score;
if( score >= 60){//统计合格人数
num++;
}
}
System.out.println(j + "班的平均成绩为:" + (sum1*1.0/5));
sum2 += sum1;
}
System.out.println("三个班级的平均成绩为:" + (sum2*1.0/15));
System.out.println("三个班级的合格人数为:" + num);
}
}
break跳转
import java.util.Scanner;
public class Learning {
public static void main(String[] args){
//break跳脱语句练习
//1-100内的数求和,当sum>20时,记录下当前数,然后break。
int sum = 0;
for( int i = 1 ; i <= 100 ; i++)
{
sum += i;
System.out.println("sum=" + sum );
Lable1://标签,指定跳转
if(sum > 20){
System.out.println("当前和为:" + sum +",大于20");
break Lable1;
}
}
System.out.println("跳出循环");
}
}
continue跳转
continue:跳出本次循环,继续下一次循环。
import java.util.Scanner;
public class Learning {
public static void main(String[] args){
lable1:
for( int j = 0; j < 4 ;j++){
lable2:
for(int i = 0 ; i <10 ; i++){
if( i == 2){
continue;
//continue lable1;
// continue lable2;
}
System.out.println("i = " +i);
}
}
}
}
数组扩容与删减
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner myScanner = new Scanner(System.in);
int[] arr = {1 ,2, 3};
do{
int[] arrNew = new int[arr.length + 1];
for( int i = 0 ;i < arr.length ;i++){
arrNew[i] = arr[i];
}
//输入要添加的数字
System.out.print("请输入要添加的数字:");
int num = myScanner.nextInt();
arrNew[arrNew.length - 1] = num;
arr = arrNew;
//展示扩容后的数组
System.out.println("扩容后的数组arr为————————————————————");
for( int i = 0 ;i < arr.length ;i++){
System.out.println( arr[i] + "\t");
}
//是否继续输入数字,yes-y,no-n
System.out.print("是否继续添加数字?y/n :");
char key = myScanner.next().charAt(0);
if( key == 'n'){
break;
}
}while(true);//无限循环
}
}
import java.util.Scanner;
class Main {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int[] arrNew = new int[arr.length - 1];
for( int i = 0 ;i < arr.length - 1 ;i++){
arrNew[i] = arr[i];
}
arr = arrNew;
//展示扩容后的数组
System.out.println("缩减后的数组arr为————————————————————");
for( int i = 0 ;i < arr.length ;i++){
System.out.println( arr[i] + "\t");
}
}
}
冒泡排序
import java.util.Scanner;
class Main {
public static void main(String[] args) {
// Scanner myScanner = new Scanner(System.in);
int[] arr = {24 , 69, 80, 57, 13};
for( int j = 0 ; j < arr.length - 1 ; j++){//一共要排arr.length-1次
//相邻的两个数之间相互比较,一次排序,把最大的数排的最后
for( int i = 0 ; i < arr.length-1 ; i++){
// i < arr.length-1,因为arr[i+1]不能等于arr[arr.length]
if( arr[i] >= arr[i+1]){
int max = arr[i];
int temp = arr[i+1];
arr[i] = temp;
arr[i + 1] = max;
}
}
System.out.println("第" + (j+1) + "轮" + "冒泡排序的结果为:");
for( int i=0 ; i < arr.length ;i++){
System.out.print(arr[i] + "\t");
}
System.out.println();
}
}
}
数组查找
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner imput = new Scanner(System.in);
System.out.print("请输入:");
String str = imput.next();
String[] arr = {"白眉鹰王", "金毛狮王" ,"紫衫龙王" ,"青翼蝠王" };
int index = -1;
for(int i = 0; i < arr.length ; i++){
if( str.equals(arr[i]) ){//字符串的比较使用equals
System.out.println("找到了,下标为:" + i );
index = i;
break;
}
}
if( index == -1 ){
System.out.println("对不起,没有找到 " + str);
}
}
}
二维数组——杨辉三角
杨辉三角从第三行开始, C(n , i) = C(n-1, i) + C(n-1, i - 1)
import java.util.Scanner;
public class Learning {
public static void main(String[] args){
int[][] arr = new int[10][];
//遍历数组,放入元素
for(int i = 0 ; i < arr.length ;i++){
//给每个一维数组开空间,即确定里面元素个数
arr[i] = new int[i + 1];
//单独处理第一行,第二行
if( i == 1 || i == 0){
for( int j = 0 ; j < arr[i].length ;j++){
arr[i][j] = 1;
}
}else{//处理第三行之后
for( int j = 0 ; j < arr[i].length ;j++){
if( j == 0 || j == (arr[i].length -1) ){
arr[i][j] = 1;
}else{
arr[i][j] = arr[i-1][j] + arr[i-1][j-1];
}
}
}
}
//遍历输出
for(int i = 0 ; i < arr.length ;i++){
for( int j = 0 ; j < arr[i].length ;j++){
System.out.print( arr[i][j] + "\t");
}
System.out.println();
}
}
}
数组作业——插入数据
import java.util.Scanner;
class Main {
public static void main(String[] args) {
//已知某个升序的数组,插入一个数,插入后仍然为升序
// arr = {10, 12, 45, 90},插入23, {10, 12, 23, 45, 90}
int[] arr = {10, 12, 45, 90};
int[] arr2 = new int[arr.length+1];
int add = 23;
int index = -1;
//第一步,找到要插入的位置
for( int i = 0 ; i < arr.length ; i++){
if( add <= arr[i] ){
index = i ;
break;
}
}
if(index == -1){//若index=-1,则说明要插入的数排在最后
index = arr.length;
}
System.out.println("插入位置:" + index);
//第二步:插入数据
for( int i = 0 , j = 0 ; i < arr2.length ; i++){
if( i != index ){//拷贝元素到arr2
arr2[i] = arr[j];
j++ ;
}else{
arr2[i] = add;
}
}
System.out.println("插入数后=============");
for( int i = 0 ; i < arr2.length ; i++){
System.out.println(arr2[i]);
}
}
}
数组作业——插入数据
//随机生成10个整数(1-100)
//1,倒序打印.
//2,求平均值,最大值及其下标.
//3,查找里面是否有8这个数。
import java.util.Scanner;
public class Learning {
public static void main(String[] args){
int[] arr = new int[10];
for( int i = 0 ; i < arr.length ; i++){
arr[i] = (int)(Math.random() * 100 + 1 );
System.out.print(arr[i] + "\t");
}
System.out.println();
System.out.println("==========================");//分割线
//1,倒序打印
for( int i = 0 ,j = arr.length-1; i < arr.length/2 ; i++){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
j--;
}
System.out.println( "倒序打印");
for( int i = 0 ; i < arr.length ; i++){
System.out.print(arr[i] + "\t");
}
System.out.println();
System.out.println("==========================");//分割线
//2,求平均值,最大值及其下标.
int max = 1;
int sum = 0;
int ave = 0;
int index = 0;
for( int i = 0 ; i < arr.length ; i++){
sum += arr[i];
if( arr[i] > max){
max =arr[i];
index = i;
}
}
System.out.print("平均值=" + (sum/10) + "," +
"最大值=" + max + "," + "最大值下标=" + index);
System.out.println();
System.out.println("==========================");//分割线
//3,查找里面是否有8这个数。
int search = 8;
int sign = -1;
for( int i = 0 ; i < arr.length ; i++){
if( arr[i] == search){
System.out.println("恭喜,找到了" + search);
sign = i;
break;
}
}
if( sign == -1){
System.out.println("很遗憾,没有找到" + search);
}
}
}
数组作业——随机生成10个数,进行冒泡排序
import java.util.Scanner;
public class Learning {
public static void main(String[] args){
//随机生成10个数,进行冒泡排序
int[] arr = new int[10];
// int[] arr = {12,34, 56, 1, 90, 31, 8};
System.out.println("数组为:");
for( int i = 0 ; i < arr.length ; i++){
arr[i] = (int)(Math.random() * 100 + 1 );
System.out.print(arr[i] + "\t");
}
for( int j = 0 ; j< arr.length-1 ;j++){
for( int i = 0 ; i < arr.length-1 ; i++){
int temp = arr[i];
if( arr[i + 1] < temp){
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
}
System.out.println();
System.out.println("冒泡排序后,数组为:");
for( int i = 0 ; i < arr.length ; i++){
System.out.print(arr[i] + "\t");
}
}
}