三目运算符语法格式:数据类型 变量名 = (表达式)条件1?:条件2
可以有多个表达式。
执行流程:表达式结果为true,则执行条件1,表达式为false,则执行条件2。
public class Demo4 {
public static void main(String[] args) {
int a = 30;
int c;
if (a > 0) {
c=30;
System.out.println(c);
} else {
c=23;
System.out.println(c);
}
}
}
public class Demo4 {
public static void main(String[] args) {
int a = 23;
String s1 = (a > 0)?"这个整数大于0":(a < 0)?"这个整数小于0":"这个整数等于0";
System.out.println(s1);
System.out.println("----------------------");
int b = -1;
if (b > 0) {
System.out.println("这个整数大于0");
} else if (b < 0){
System.out.println("这个整数小于0");
} else {
System.out.println("这个整数等于0");
}
}
}
循环结构(重点)
生活中的循环:摩天轮就是循环一圈一圈的转。
马拉松的跑道是循环,一圈一圈的
风扇也是循环
java代码中的循环:也是一圈一圈的执行,如果为false的则停止
循环结构三个条件:初始化的条件 循环条件 终止条件
while(表达式){
语句体;
++;循环条件;
}执行流程:首先走到while关键字 判断括号里的表达式为true,则执行语句体,++,之后在返回while关键字判断表达式结果为true,则执行当前括号中的语句体,++,再次返回while关键字结果为false则循环结束,不再执行语句体。
public class Demo4 {
public static void main(String[] args) {
/*
a1 =23 走到while关键字
23 < 30 结果为true,则执行语句体 a1++
24 < 30 true 则执行语句体 a1++
25 < 30 true 执行语句体 a1++;
26 < 30 true 执行语句体 a1++
27 < 30 true 执行语句体 a1++
28 < 30 true 则执行语句体 a1++
29 < 30 true 执行语句体 a1++
30 < 30 false 循环结束不再执行语句体。
*/
int a1 = 23;//初始化的条件
while (a1 < 30) {//循环的终止条件
System.out.println(a1+"你好呀");
a1++;//循环条件
}
System.out.println("嘻嘻哒");
}
}
public class Demo4 {
public static void main(String[] args) {
/*
a=1 1<=5 true 执行语句体1 a++
a=2 2<=5 true 执行语句体2 a++
a=3 3<=5 true 执行语句体3 a++
a=4 4<=5 true 则执行语句体4 a++
a=5 5<=5 true 则执行语句体5 a++
a=6 6<=5 false 则循环结束不在执行
*/
int a = 1;
while (a <= 5) {
System.out.println(a);
a++;
}
System.out.println("哈哈大");
}
}
public class Demo4 {
public static void main(String[] args) {
/*
a1=100 100>=97 true 则执行语句体100 a1--
a1=99 99>=97 true 则执行语句体99 a1--
a1=98 98>=97 true 则执行语句体98 a1--
a1=97 97>=97 true 则执行语句体97 a1--
a1=96 96>=97 false 则循环结束不再执行当前的语句体
*/
int a1 = 100;
while (a1 >= 97){
System.out.println(a1);
a1--;
}
System.out.println("嘻嘻哒");
}
}
public class Demo4 {
public static void main(String[] args) {
/*
现有1-10位的数
a1=1 1<=10 true 则进入if
1%2==1 true 则输出语句体1 a1++
a1=2 2<=10 2%2==1 false a1++
a1=3 3<=10 true 3%2==1 true 则输出语句3 a1++
a1=4 4<=10 true 4%2==1 false a1++
a1=5 5<=10 true 5%2==1 true 则输出语句5 a1++
a1=6 6<=10 true 6%2==1 false a1++
a1=7 7<=10 true 7%2==1 true 则输出语句7 a1++
a1=8 8<=10 true 8%2==1 false a1++
a1=9 9<=10 true 9%2==1 true 则输出语句9 a1++
a1=10 10<=10 true 10%2==1 false a1++
a1=11 11<=10 false 则循环结束
*/
int a1 = 1;
while (a1 <= 10) {
if (a1 % 2 == 1) {
System.out.println(a1);
}
a1++;
}
}
}
public class Demo4 {
public static void main(String[] args) {
/*
a1=1 1<=10 true 输出语句1 1+=2
a1=3 3<=10 true 输出语句3 1+=2
a1=5 5<=10 true 输出语句5 1+=2
a1=7 7<=10 true 输出语句7 7+=2
a1=9 9<=10 true 输出语句9 9+=2;
a1=11 11<=10 false 则不输出语句
*/
int a1= 1;
while(a1 <=10){
System.out.println(a1);
a1+=2;
}
}
}
public class Demo4 {
public static void main(String[] args) {
/*
a1=1 1<=100 true 1%7==0 false a1++
a1=2 2<=100 true 2%7==0 false a1++
a1=3 3<=100 true 3%7==0 false a1++
a1=4 4<=100 true 4%7==0 false a1++
a1=5 5<=7 true 5%7==0 false a1++
a1=6 6<=100 true 6%7==0 false a1++
a1=7 7<=100 true 7%7==0 true 则输出语句7 a1++
a1=8 8<=100 true 8%7==0 false a1++
a1=9 9<=100 treu 9%7==0 false a1++
a1=10 10<=100 treu 10%7==0 fale a1++
a1=11 11<=100 true 11%7==0 false a1++
a1=12 12<=100 true 12%7==0 false a1++
a1=13 13<=100 true 13%7==0 false a1++
a1=14 14<=100 true 14%7==0 true 组输出语句14 a1++
以此类推
*/
int a1 = 1;
while(a1 <= 100){
if (a1 % 7 == 0){
System.out.println(a1);
}
a1++;
}
}
}
do-while循环几乎不用
do{
语句体;
}while(表达式);
执行流程:首先走到do关键字,执行一次语句体,之后走到while关键字,判断括号里的表达式位true,则再次返回do则执行语句体,之后在到while关键字判断表达式为true,则到do打括号里执行语句体,再次判断while(括号里的结果为false)则循环结束。不再执行。
public class Demo4 {
public static void main(String[] args) {
/*
a=1 执行语句体一次晚上加班 a++ 1<=10
a=2 执行第二个语句体晚上加班 a++ 2<=10
a=3 执行第三个语句体晚上加班 a++ 3<=10
a=4 执行第四给语句体晚上加班 a++ 4<=10
a=5 执行第五个语句体晚上加班 a++ 5<=10
a=6 执行第六个语句体晚上加班 a++ 6<=10
以此类推
*/
int a = 1;
do{
System.out.println(a+"晚上加班");
a++;
}while(a <= 10);
}
}
重点:while循环和do while循环的区别
while循环:先判断 在执行
do=while:先执行一次语句体 在判断
for循环(重点)
循环的三个条件:初始化的条件 终止条件 循环条件
for循环语法格式:for(表达式1;表达式2;表达示3){
循环体;
}
表达式1:初始化的条件
表达示2:终止条件
表达示3:循环条件
执行流程:首先走到for关键字,先执行表达式1,在判断表达式2,结果为true,则执行语句体,在执行表达式3,之后在走到for关键字执行表达示1,在判断表达式2,结果为true则执行语句体,在执行表达式3,再次走到for关键字先执行表达式1,在次判断表达式结果为false,则循环结束。
public class Demo4 {
public static void main(String[] args) {
/*
a=1 1<=3 true 则执行语句体云想衣裳花想容 a++
a=2 2<=3 true 则执行语句体云想衣裳花想容 a++
a=3 3<=3 true 则执行语句体云想衣裳花想容 a++
a=4 4<=3 false 则循环结束
*/
for(int a = 1; a<=3;a++){
System.out.println("云想衣裳花想容");
}
//案例1:打印1-10以内的奇数
/*
a1=1 1<=10 则进入if判断
1%2==1 true 则执行语句体1 a1++
a1=2 2<=10 则进入if判断
2%2==1 false a1++
a1=3 3<=10 true 则进入if判断
3%2==1 true 则输出语句3 a1++
a1=4 4<=10 true 则进入if判断
4%2==1 false a1++
a1=5 5<=10 true 则进入if判断
5%2==1 true 则执行语句体5 a1++
a1=6 6<=10 true 则进入if判断
6%2==1 false a1++
a1=7 7<=10 true 则进入ifp判断
7%2==1 true 则执行语句7 a1++
a1=8 8<=10 true 则进入if判断
8%2==1 false a1++
a1=9 9 <=10 true 则进入if判断
9%2==1 true 则执行语句体9 a1++
a1=10 10<=10 true 则进入if判断
10%2==1 false 则循环结束
*/
for(int a1 = 1; a1<=10; a1++){
if (a1 % 2 == 1){
System.out.println(a1);
}
}
}
}
public class Demo4 {
public static void main(String[] args) {
/*
a=0 a<=100 true 则执行语句体0 a+=2
a=2 2<=100 true 则执行语句体2 a+=2
a=4 4<=100 true 则执行语句体4 a+=2
a=6 7<=100 true 则执行语句体6 a+=2
a=8 8<=100 true 则执行语句体8 a+=2
a=10 10<=100true 则执行语句体10 a+=2
a=12 12<=100 true 则执行语句体12 a+=2'
a=14 14<=100 true 则执行语句体14 a+=2
a=16 16<=100 true 则执行语句体16 a+=2
a=18 18<=100 true 则执行语句体18 a+=2
a=20 20<=100 true 则执行语句体20 a+=2
a=22 22<=100 true 则执行语句体22 a+=2
a=24 24<=100 true 则执行语句体24 a+=2
以下也是这样执行
*/
//打印100以内的偶数
for(int a = 0; a<=100;a+=2){
System.out.println(a);
}
//dayin100以内的奇数
for(int a1 = 1; a1<=100;a1+=2){
System.out.println(a1);
}
}
}
public class Demo4 {
public static void main(String[] args) {
//100以内的逢7过 凡是7的倍数和带7 的都要给我打印"过" 其他都是打印数字
for (int a = 1; a<= 100;a++) {
if (a % 7 == 0 || a /10 == 7 || a % 10 == 0){
System.out.println("过");
}else {
System.out.println(a);
}
}
}
}
public class Demo4 {
public static void main(String[] args) {
//0<=100 true j+=i 0+=0 i++
//1<=100 true 0+=1 i++
//2<=100 true 0+=1+2 i++
//3<=100true 0+=1+2+3 i++
//以此类推到99
//99<=100 true 0=1+2+3+4+5+6+7+8...+99 i++
//100<=100 true 0=0+1+2+3+4+5+6+7+8+9+10...+100
//求1-100数的和
int j = 0;
for (int i = 0; i<=100; i++) {
j+=i;
}
System.out.println(j);
}
}
循环的嵌套
一个循环里面还有一个内层循环
秉承着一点内层循环结束之后,在回到外层循环执行。
public class Demo4 {
public static void main(String[] args) {
//*****
//*****
//*****
/*
i=1 1<=3 true 进入内层循环
i1=1 1<=4 true 则打印一颗星* i++
i=2 2<=4 true 则打印两颗星星** i1++
i1=3 3<=4 true 则打印三颗星星*** i1++
i1=4 4<=4 true 则打印四颗星**** i1++
i1=5 5<=4 false 则循环结束 换行 i++
i=2 2<=3 true 则进入内层循环
i1=1 1<=4 true 打印一颗星* i1++
i1=2 2<=4 true 打印两颗行** i1++
i1=3 3<=4 true 打印三颗星*** i1++
i1=4 4《=4 true 打印四颗星星**** i1++
i1=5 5<=4 false 则内层循环结束 i++
以此类推
*/
for (int i = 1; i<=3; i++) {
for(int i1 = 1; i1<=4;i1++){
System.out.print("*");
}
System.out.println();
}
}
}
打印*
***
*****
*******
public class Demo4{
public static void main(String[] args) {
/*
*
***
*****
******* 判断四行 没有空格
*/
/*
i=1 1<=4 true 进入内层循环
j=1 1<=1 true 打印一颗星* j++
j=2 2<=1 false 循环结束 i++
i=2 2<=4 true 进入内层循环
j=1 1<=3 true 打印一颗星* j++
j=2 2<=3 true 打印两颗星** j++
j=3 3<=3 true 打印三颗星*** j++
j=4 4<=3 false 则循环结束 i++
i=3 3<=4 true 则进入内层循环
j=1 1<=5 true 打印一颗星* j++
j=2 2<=5 true 打印两颗星** j++
j=3 3<=5 true 打印三颗星*** j++
j=4 4<=5 true 打印四颗星**** j++
j=5 5<=5 true 打印五颗星***** j++
j=6 6<=5 false 则循环结束 以此类推
*/
for (int i = 1; i<=4;i++) {
for(int j = 1; j<=2*i-1;j++){
System.out.print("*");
}
System.out.println();//换行
}
}
}
打印99乘法表
public class Demo4{
public static void main(String[] args) {
//打印99乘法表
for (int i = 1; i<=9; i++){
for(int j = 1; j<=i;j++){
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println();
}
}
}
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
作业:替换两个数中的值。
public class Demo4{
public static void main(String[] args) {
int a1 = 90;
int a2 = 45;
if (a1 > a2){
int a3;
a3=a1;
a1=a2;
a2=a3;
System.out.println("a1="+a1);
System.out.println("a2="+a2);
} else {
System.out.println("a1="+a1);
System.out.println("a2="+a2);
}
}
}