Java中的的if语句
if(条件表达式){
//条件表达式为true的时候执行的语句
}else{
//条件表达式为fasle的时候执行的语句
}
if(条件表达式){
//条件表达式为true的时候执行的语句
}else if(条件表达式){
//条件表达式为true的时候执行的语句
}else{
//条件表达式为fasle的时候执行的语句
}
执行流程图:
多分支语句
switch(表达式){
case 值1:
语句体;
break;
case 值2:
语句体;
break;
default:
上述case均不匹配时执行的语句;
break;
}
表达式的取值:byte,short,int,char(JDK5以后可以是枚举,JDK7以后可以是String)(这句话可能出面试题)
执行流程图:
while语句,do-while语句
while(循环条件){
//循环操作
}
先判断,再循环
do{
//循环操作
}while(循环条件)
先循环,再判断
可以通过do-while语句来玩个猜数游戏(猜1到100的数据)
Scanner scanner = new Scanner(System.in);
int number = (int)(Math.random() * 100 + 1);
System.out.println("输入你猜的数字吧");
int a;
int count = 0;
do {
a = scanner.nextInt();
count = count + 1;
if (a > number) {
System.out.println("你猜大了");
} else if (a < number) {
System.out.println("你猜小了");
}
} while (a != number);
System.out.println("恭喜你猜对了,你一共猜了" + count + "次");
System.out.println("这是你猜的数字" + number);
println和print的区别:
println会换行和print不会换行
for语句
for(循环变量初始化;循环条件;循环变量变化){
循环操作
}
特点:相比 while 和 do…while 语句结构更加简洁易读
练一练for语句实现1到100之间不能被3整除的数之和?
public static void main(String[] args) {
int sum = 0; // 保存不能被3整除的数之和
// 循环变量i初始值为 1,每执行一次对变量加 1,只要小于等于100就重复执行循环
for (int i = 1; i <= 100; i++) {
// 变量 i与3进行求模(取余)如果不等于 0 ,则表示不能被 3 整除
if (i % 3 != 0) {
sum = sum + i; // 累加求和
}
}
System.out.println("1到100之间不能被3整除的数之和为:" + sum);
}
break和continue语句
break语句可用于跳出循环,所在的循环体已经结束
continue语句中断循环中的迭代,如果出现了指定的条件,然后继续循环中的下一个迭代(注意:continue所在的循环体并没有结束)
数组的定义以及使用方法
数组的定义:
数组是一个变量,存储相同数据类型的一组数据结构
1,声明一个变量就是在内存空间划出一块合适的空间
2,声明一个数组就是在内存划出一串连续的空间
数组的结构和基本要素
标识符:给数组命名,用于区分不同的数组
数组元素:向数组中存放数据
元素类型:数组元素的数据类型
元素下标:对数组元素进行编号
声明数组:数据类型[] 数组名 int[] scores;
数据类型[] 数据名 = new 数据类型[数据长度]
int[] scores = new int[5]
随机数的生成方式
1. new Random()
Random random = new Random();
random.nextInt(100);
2. Math.random()
int random = (int) (Math.random()*100+1)
3. currentTimeMillis()
long randomNum = System.currentTimeMillis();
int ran3 = (int)(randomNum % (100) + 1);
第三种方法虽然不常用,但是也是一种思路。方法返回从1970年1月1日0时0分0秒(这与UNIX系统有关)到现在的一个long型的毫秒数,取模之后即可得到所需范围内的随机数
练一练,定义一个整形数组,并赋值,求其中的最大值,最小值以及平均值
public static void main(String[] args) {
// 定义一个整型数组,并赋初值
int[] nums = new int[] {61, 23, 4, 9};
int max = nums[0]; // 假定最大值为数组中的第一个元素
int min = nums[0]; // 假定最小值为数组中的第一个元素
double sum = 0;// 累加值
double avg = 0;// 平均值
for (int i = 0; i < nums.length; i++) { // 循环遍历数组中的元素
// 如果当前值大于max,则替换max的值
if (nums[i] > max) {
max = nums[i];
}
// 如果当前值小于min,则替换min的值
if (nums[i] < min) {
min = nums[i];
}
// 累加求和
sum = sum + nums[i];
}
// 求平均值
avg = sum / nums.length;
System.out.println("数组中的最大值:" + max);
System.out.println("数组中的最小值:" + min);
System.out.println("数组中的平均值:" + avg);
}
练一练,打印一个直角三角形
public static void main(String[] args) {
for (int i = 0; i < 4; i++) { //4表示一共有4行
for (int j = 0; j < 3 - i; j++) { //每行需要打印多少个空格
System.out.print(" ");
}
for (int k = 0; k < i + 1; k++) { //每行需要打印多少个*号
System.out.print("*");
}
System.out.println(" "); //换行
}
}
练一练,打印一个菱形
public static void main(String[] args) {
int row = 3;
for (int i = 0; i < row; i++) { // 代表的行数
for (int j = 0; j < row - i - 1; j++) { // 代表的空格
System.out.print(" ");
}
for (int k = 0; k < 2 * (i + 1) - 1; k++) { // 代表的*号
System.out.print("*");
}
System.out.println(" ");
}
for (int i = 0; i < row - 1; i++) {
for (int j = 0; j < i + 1; j++) {
System.out.print(" ");
}
for (int j = 0; j < 2 * (row - i - 1) - 1; j++) {
System.out.print("*");
}
System.out.println("");
}
}