day3

来源:互联网 发布:mac合盖播放 编辑:程序博客网 时间:2024/06/05 15:28

//字符类型可以直接进行循环
//字符类型可以直接当做整型来使用,实际使用的是ASCII码

例题:打印出A到Z及a到z的asc码
package cn.qc.java1706.wzx1;
import java.util.Scanner;
public class Ex4 {

 public static void main(String[] args) {
  // TODO Auto-generated method stub
  //字符类型可以直接进行循环
  //字符类型可以直接当做整型来使用,实际使用的是ASCII码
  for(int i='A';i<='Z';i++){
   System.out.println(i);
  }
  for(int i='a';i<='z';i++){
   System.out.println(i);
  }

 }

}

定义一个字符并赋值,如果是小写字母转成大写字母输出,如果不是小写原样输出

package cn.qc.java1706.wzx1;

import java.util.Scanner;

public class Ex13 {

 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Scanner ip = new Scanner(System.in);
  System.out.println("请输入一个字符:");
  char ipChar = ip.next().charAt(0);
  if (ipChar >= 'a' && ipChar <= 'z') {
   // 小写字母-32就是大写字母
   // 大写字母+32就是小写字母
   char c = (char) (ipChar - 32);
   System.out.println(c);
  } else if (ipChar >= 'A' && ipChar <= 'Z') {
   System.out.println(ipChar);
  }

 }

}

 

产生指定范围的随机数:  公式:rd.nextInt(大数)%(大数-小数+1)+小数;

Random rd=new Random();
//产生10~20
int num=rd.nextInt(20)%(20-10+1)+10;

例题:
随机一个1---10之间的数,从控制台输入一个数
如果大于该数则输出“大了”, 如果小于输出“小了”,
如果等于则输出“太棒了一次就猜对了”
package cn.qc.java1706.wzx1;
import java.util.Random;
import java.util.Scanner;
public class Ex12 {

 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Random rd=new Random();
  int num=rd.nextInt(10)%(10-1+1)+1;
  System.out.println(num);
  Scanner ip=new Scanner(System.in);
  System.out.println("请输入一个1-10的数:");
  int num1=ip.nextInt();
  if(num>num1){
   System.out.println("小了");
  }else if(num<num1){
   System.out.println("大了");
  }else if(num==num1){
   System.out.println("恭喜你猜对了!");
  }

 }

}

*************************************数组***************************************

1、声明方式及特点
2、如何使用数组
3、多维数组的使用

变量 --》 数组 --》 集合

数组:一块连续的内存空间,且存放数据类型相同的一组数据

特点:
1)内存空间连续,存取值时效率加高
2)长度在声明时时固定的,不能动态地改变数据的长度

有两种方式:
1、字面量方式:
见代码:ArrayDemo.java

  //字面量方式:声明的同时赋值
  //语法:数据类型[] 数组名字={元素1,元素2};
  String[] aryStudents={"","",""};
  //构造方式:数据类型[] 数组名字=new 数据类型[长度]
  int[] aryScores=new int[10];

数组长度:数组里存放的元素的个数

索引:也称为下标,是系统为数组元素默认进行的编号
      数组的第一个元素编号为0,第二个为1,以此类推

索引范围:【索引从0开始,最大值到数组长度-1】
例如:10个元素
索引范围0-9

索引作用:通过索引来访问数组中的元素
访问元素的语法:数组名[索引值]
例如:aryScore[0]=80;

                //通过索引方式来赋值
  aryScores[0]=80;
  aryScores[1]=90;
  //输出数组里第一个元素值
  System.out.println(aryScores[0]);
  //获取数组的长度,数组的长度和是否赋值没有关系
  System.out.println(aryScores.length);

********************************************************************************  

  //在内存中申请了5块连续的内存空间,空间里存放的是0
  int[] aryScores=new int[5];
          //通过循环来遍历数组,从而录入五个成绩
  //for 循环变量用作数组的长度
  //输入五个成绩,计算及格成绩的个数及平均分
  int count=0;
  int sum=0;
  for(int i=0;i<aryScores.length;i++){
   System.out.println("请输入第"+(i+1)+"个成绩");
   aryScores[i]=ip.nextInt();   
   if(aryScores[i]>=60){
    count+=1;
    sum+=aryScores[i];
   }
  }
  float avg=sum/count;
  System.out.println("个数:"+count+",平均分:"+avg);
  //经过以上的遍历,为成绩数组赋值了五个成绩
  //遍历输出
//  for(int i=0;i<aryScores.length;i++){
//   System.out.println(+aryScores[i]);
//  }


关于数组的操作:
ArrayDemo2.java

package cn.qc.java1706.day3;

import java.util.Random;
import java.util.Scanner;

public class ArrayDemo2 {

 public static void main(String[] args) {
  // TODO Auto-generated method stub
  char[] aryChars = { ';', '1', 'b', '3', '4', '5', 's' };
  // 数组中数字的个数有几个
  // 字符可以当做数字使用
  // 计数器,记录数字的个数
  int count = 0;
  for (int i = 0; i < aryChars.length; i++) {
   if (aryChars[i] <= '9' && aryChars[i] >= '0') {
    count += 1;
   }
  }
  System.out.println(count);

  // 声明一个整数数组,长度为20,随机赋值1~100之间的数
  // 要求把数组中的偶数+2后赋值到新数组中

  Random rd = new Random();
  int[] INum = new int[20];
  int count1 = 0;
  for (int i = 0; i < 20; i++) {
   // 产生1~100之间的随机数
   int num = rd.nextInt(100) % (100 - 1 + 1) + 1;
   INum[i] = num;
   if (INum[i] % 2 == 0) {
    // 先判断新数组的长度
    count1 += 1;
   }
  }
  // 遍历老数组INum[i]
  for (int i = 0; i < INum.length; i++) {
   System.out.print(INum[i] + ",");
  }
  System.out.println(" ");
  // 新数组的长度
  int[] INum1 = new int[count1];
  // 遍历原数组中的每一个元素
  // 新数组元素的索引newIndex
  int newIndex = 0;
  for (int i = 0; i < INum.length; i++) {
   if (INum[i] % 2 == 0) {
    // 赋值到INum1中
    INum1[newIndex] = INum[i] + 2;
    // 新数组再次存放值时,当前索引值+1之后的索引上
    newIndex++;
   }
  }
  // 遍历新数组
  for (int i = 0; i < INum1.length; i++) {
   System.out.print(INum1[i] + ",");
  }
  //
  char[] aryOld = { 'h', 'e', 'l', 'l', 'o' };
  char[] aryNew = new char[aryOld.length];
  // 声明新数组,把就数组值
  for (int i = 0; i < aryOld.length; i++) {
   aryNew[i] = aryOld[aryOld.length - 1 - i];
  }
  System.out.println(" ");
  for (int i = 0; i < aryOld.length; i++) {
   System.out.print(aryNew[i] + ",");
  }
  /////////////////////////////////////////
  // 从控制台接收5个成绩存入数组中,在另一个数组中存放这个成绩对应的
  // 五分制成绩
  // 要求找出5个成绩的最高分
  // 五分制等级:学生分数>最高分-10 A
  // -20 B
  // 输出:第一个学生分数的分数是91 对应成绩是A
  System.out.println(" ");
  Scanner ip = new Scanner(System.in);
  int[] aryScores = new int[5];
  int max = 0;
  for (int i = 0; i < 5; i++) {
   System.out.println("请输入第" + (i + 1) + "个成绩");
   int num = ip.nextInt();
   aryScores[i] = num;
   if (aryScores[i] > max) {
    max = aryScores[i];
   }
  }
  for (int i = 0; i < aryScores.length; i++) {
   System.out.print(aryScores[i] + ",");
  }
  System.out.println(" ");
  // 创建五分制数组,存放五分制成绩
  char[] levelScores = new char[5];
  for (int i = 0; i < aryScores.length; i++) {
   if (aryScores[i] > max - 10) {
    levelScores[i] = 'A';
   } else if (aryScores[i] > max - 20) {
    levelScores[i] = 'B';
   } else if (aryScores[i] > max - 30) {
    levelScores[i] = 'C';
   } else if (aryScores[i] > max - 40) {
    levelScores[i] = 'D';
   } else {
    levelScores[i] = 'E';
   }
  }
  // 输出
  for (int i = 0; i < levelScores.length; i++)
   System.out.println("第" + (i + 1) + "个学生分数的分数是" + aryScores[i] + " 对应成绩是" + levelScores[i]);

 }

}