//字符类型可以直接进行循环
//字符类型可以直接当做整型来使用,实际使用的是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]);
}
}