1.循环
没有结果只是想要执行特定的代码需要用分支
顺序结构:从上到下一条一条执行
选择结构:有选择性的执行或者跳过某段语句
循环结构:反复执行某段特定的代码
选择结构:if分支,switch分支
单分支if(){}
双分支if(){}else{}
分支嵌套,多分支if(){}else{} if(){}else{}
如果大括号中只有一条语句,则大括号可以省略
控制台输入
1.先定义scanner对象
Scanner sc = new Scanner(System.in);
2.输入内容
System.out.println(“输入内容”);
3.定义类型
int i = sc.nextInt();
==判断的是基本数据类型的数值是否相同,判断引用数据类型的内存地址是否相等
String类中的equals比较的是两个字符串的常量池中的内容是否相同
2.for循环的使用
九九乘法表打印
//九九乘法表
for(int i=1;i<=9;i++) {
for(int j=1;j<=i;j++) {
System.out.print(i+"*"+j+"="+i*j+"\t");
}
System.out.println(" ");
}
100以内的偶数加和
//100以内的偶数加和
int sum=0;
for(int m=0;m<=100;m++) {
if(m%2==0) {
sum+=m;
}
}
System.out.println(sum);
所有数的加和
//所有数的加和
int[] arr = {
6,3,8,66,344,1};
int sum1=0;
for (int i : arr) {
sum1+=i;
}
System.out.println(sum1);
3.switch case循环
switch专门用来作等值判断
switch (变量) {
case value:
break;
default:
break;
}
输入年份及月份计算是否是闰年和月份的天数
//能整除4但是不能整除100 能整除400的是闰年
System.out.println("请输入年份:");
int num = sc.nextInt();
System.err.println("请输入月份:");
int month2 = sc.nextInt();
if((num%4==0 && num%100==0) || num%400!=0) {
if(month2==2) {
System.out.println("29天");
}else {
System.out.println("28天");
}
}
switch (month2) {
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;
}
}
三目运算符:速度快,必须有结果
if分支即可以判断范围,也可以等值判断
switch只能做等值判断
如果范围判断:if
循环:反复执行特定的代码
4.while循环
1.定义循环变量,纪录循环次数
int i =1;
2.循环条件 每次帮助判断是否需要继续
i<10;
3.反复要被执行的内容
System.out.println(“aaa”);
4.迭代部分:更新循环变量i++
int i = 1;
while(i<=10) {
System.out.println("执行"+i+"次");
System.out.println(i);
i++;
}
5.do while循环
循环变量
先执行do 再执行while
int i =1;
do {
//循环体
System.out.println("执行一次");
//迭代部分
i++;
} while (i<1);//循环条件
正常用:for,效率最高,不确定循环次数,循环输入,如果是指定的值则停止循环
至少能执行一次:do while
不确定循环次数:while(true){break;}
break和continue区别
break默认跳出就近原则,跳出的是jvm虚拟机
continue跳过本次循环,执行下一次循环
二维图形:外层循环控制行,内层循环控制列
for (int i = 1; i <= 4; i++) {
for (int j = 1; j <=i; j++) {
System.out.print("*");
}
System.out.println();
}
for (int i = 1; i <=4; i++) {
for (int k = 1; k <= 4-i; k++) {
System.out.print(" ");
}
for (int j = 1; j <=2*i-1; j++) {
System.out.print("*");
}
System.out.println();
}
6.for循环数组
//在声明初始化数组的时候,就知道要存什么
int[] arr = new int[4];
arr[0]=5;
arr[1]=6;
arr[2]=7;
arr[3]=8;
arr[2]=6;
int[] arr = new int[] {
1,2,3,4};
int[] arr = {
11,12,13,14,15};
//arr.length 数组长度 设计带有下标的操作,用普通for循环
for (int i = 0; i < arr3.length; i++) {
System.out.println(i);
}
//增强for循环 i数组中元素的内容
/*
*格式简介,效率更高
*不能拿到下标的
*只适用于遍历操作
*/
//增强for循环遍历
for (int num : arr) {
System.out.println(num);
}
最大值
//2.最大值
int max = arr[0];
for (int i = 1; i < arr.length; i++) {
if(max<arr[i]) {
max=arr[i];
}
}
System.out.println("最大值:"+max);
判断是否有某一个元素
//判断是否有某一个元素
Scanner sc = new Scanner(System.in);
System.out.println("请输入要查找的值");
int num = sc.nextInt();
boolean f = false;
for (int i = 0; i < arr.length; i++) {
if(num==arr[i]) {
f=true;
break;
}
}
if(f) {
System.out.println("存在");
}else {
System.out.println("不存在");
}
}