逻辑控制语句:
1.顺序结构
2.条件分支结构
1.如果XXX,就XXX ---if()
2.如果XXX,就XXX ,否则XXX if else
3.如果XXX,就XXX ,否则,如果XXX 就XXX,否则XXX if() else if() else
switch case:
(1)只只适用于判断值是否相等
(2)switch(条件) -> 要判断的条件
条件: byte/short/int/char/String
(3)case:
a.case后面接的是要对比的值
b.case具有穿透性的,遇到break结束
c.defalut(默认情况):相当于if-else if () - else情况中的 else
package day02;
public class demo05 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int month = 11;
//switch 后跟的是要判断的变量
//要判断的变量:可以放能自动转换成int 的值
//byte short int char JDK1.7 string
switch(month) {
//case具有穿透性
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println("31");break;
case 4:
case 6:
case 9:
case 11:
System.out.println("30");break;
case 2:
System.out.println("28");break;
default:
System.out.println("输入月份有错误");break;
}
}
}
package day02;
import java.util.Scanner;
/*
* if条件分支结构
*/
public class demo01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//需求:成绩=100,买一辆小汽车
//JDK 类 变量名
//导包快捷键 ctrl shift o
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个成绩");
int score=scanner.nextInt();
//int score=100;
if(score==100) {
System.out.println("买一辆小汽车");
}else {
System.out.println("买一堆试题");
}
}
}
3.循环结构
for --已知次数,有规律可循
int i= 0 循环初始值,只执行一次
int <=100 判断是否进入循环
循环体内容
i++ 步长 i的变化值
while --没有规律,不知道次数的时候使用
do-while 先执行一次,再循环
while和do-while不能进行随意切换的情况:
第一次就不符合循环条件
数组:
批量定义变量
1.声明(定义)
int[] arr;
char[] c;
double[] d;
byte[] b;
2.初始化
a.静态赋值
特点:只能在声明的同时初始化
int[] arr = {1,2,3,4};
b.静态赋值
特点:可以进行重复赋值
int[] arr = new int[]{1,3,4,5}
静态赋值特点:
都是在声明的时候就已经确定了数组的长度和数组的元素
c.动态赋值
特点:在定义数组是只确定了数组的长度
所以有默认初始值:
int -> 0
double -> 0.0
char -> '\u0000'
String -> null
boolean -> false
3.修改(获取)数组的元素
通过下标获取(修改),下标都是从0开始的
数组下标的范围:0 ~ length-1
4.数组的属性 length
数组的长度 = 数组的元素个数
5.数组的遍历/迭代
依次获取数组中的元素
package day02;
import java.util.Arrays;
/*
* 数组
*/
public class demo09 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//数组的定义:
//静态赋值,
//int [] arr 声明数组变量
//只能在声明的时候赋值
int [] arr1 = {1,2,3,4};
int [] arr2 = new int [] {2,3,4};
arr2 = new int[] {3,4,5};//重复赋值
//静态赋值:在定义时已经确定了数组元素
//动态赋值
//[5] 5代表数组长度
int [] arr3 = new int[5];//{0,0,0,0,0,}
//想要获取arr1数组中的元素2
//下标从0开始
System.out.println(arr1[1]);
//给arr3中的元素赋值
arr3[0] =2;
arr3[1] =2;
arr3[2] =2;
arr3[3] =2;
arr3[4] =2;
System.out.println(arr3[2]);
//java.lang.ArrayIndexOutOfBoundsException: 数组下标越界异常
//数组中的属性length 长度
System.out.println(arr3.length);
//数组的循环/遍历
for(int i=0;i<arr3.length;i++) {
System.out.println(arr3[i]); //挨个获取数组中的元素
}
//打印所有的数组元素
//System.out.println(arr3);//[I@424c0bc4
System.out.println(Arrays.toString(arr3));
//java.lang.NullPointerException 空指针异常
arr3 = null;
System.out.println(arr3[0]);
}
}
练习题:
//练习题:
package day02;
import java.util.Scanner;
public class demo02 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//找出公约数是5的数,再找出公约数是2的数
for(int i=1;i<=100;i++) {
if(i%5==0) {
if(i%2==0) {
System.out.print("公约数为:");
System.out.println(i);
}
}
}
//当X和Y大于2时,求和
Scanner scanner = new Scanner(System.in);
System.out.println("请输入两个数x,y");
int x=scanner.nextInt();
int y=scanner.nextInt();
if(x>2) {
if(y>2) {
System.out.println(x+y);
}
}
//需求:判断是否是闰年
//四闰百不闰,四百闰
Scanner scanner = new Scanner(System.in);
System.out.println("输入一个年份:");
int year=scanner.nextInt();
if((year%400==0)||(year%4==0 && year%100!=0)) {
System.out.println("是闰年");
}else {
System.out.println("不是闰年");
}
}
}
package day02;
import java.util.Scanner;
public class demo04 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in);
System.out.println("输入商品单价");
int a=scanner.nextInt();
System.out.println("输入商品数量");
int b=scanner.nextInt();
System.out.println("输入实付金额");
int money=scanner.nextInt();
double sum=0;
sum=a*b;
if(sum>=500) {
sum=sum*0.8;
}
System.out.println("应付金额"+sum);
if(money>=sum) {
sum=money-sum;
System.out.println("找零:"+sum);
}else {
sum=sum-money;
System.out.println("实付金额不够,应再付"+sum);
}
}
}
package day02;
//需求:输出几天后是星期几
import java.util.Scanner;
public class demo06 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in);
System.out.println("输入几天后");
int a=scanner.nextInt(); //几天后
System.out.println("输入今天星期几");
int b=scanner.nextInt(); //今天星期几
int c;
c=a%7;
switch(c) {
case 1:
System.out.println("星期"+(b+1));break;
case 2:
System.out.println("星期"+(b+2));break;
case 3:
System.out.println("星期"+(b+3));break;
case 4:
System.out.println("星期"+(b+4));break;
case 5:
System.out.println("星期"+(b+5));break;
case 6:
System.out.println("星期"+(b+6));break;
case 0:
System.out.println("星期"+(b+0));break;
default:
System.out.println("输入错误");break;
}
}
}
package day02;
//题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,
//小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
public class demo10 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int arr1[] = new int[20];
arr1[0]=2;
arr1[1]=2;
for(int i=2;i<arr1.length;i++) {
arr1[i]=arr1[i-1]+arr1[i-2];
}
System.out.println(arr1[19]);
}
}