选择结构
1. if单选择结构
- 我们很多时候需要去判断一个东西是否可行,然后我们才去执行,这样一个过程在程序中用if语句来表示
if(布尔表达式){ //如果布尔表达式为true将执行语句
2. if双选择结构
- 如果需要一个满足不了时,需要2个判断,所以有了if-else结构
public class *** { public static void main(String[] agrs){ Scanner scanner = new Scanner(System.in); System.out.println("请输入成绩:"); int score=scanner.nextInt(); if ((score>60)){ System.out.println("及格"); }else { System.out.println("不及格"); } scanner.close(); } }
3. if多选择结构
- 当出现多种和情况abcd时,我们需要用到多结构
4. 嵌套的if结构
提高效率,例如我们从1到100if(布尔表达式){ //如果布尔表达式1为true将执行语句
if(布尔表达式2){ //如果布尔表达式2为true将执行语句
`
public static void main(String args[]){ int x = 30; int y = 10; if( x == 30 ){ if( y == 10 ){ System.out.print("X = 30 and Y = 10"); } } } }
5. switch多选择结构
多选择还有一个实现方式就是switch case语句 每个值称为一个分支
case value: //语句 break;//可选 case value: //语句 break; //你可以有任意的case语句 defauly://可选 //语句
- switch可用的变量是:
- byte、short、int或者char、String。
public static void main(String[] agrs){ //case穿透 char grade = 'D'; switch (grade){ case 'A': //注意是单引号 ,双引号为String类型 System.out.println("优秀"); break;//可选 case 'B': System.out.println("良好"); break; case 'C': System.out.println("及格"); break; case 'D': System.out.println("再接再厉"); break; case 'E': System.out.println("挂科"); break; default: System.out.println("未知等级"); } } }
- 注意用swith语句时需要将case后用break来返回结果否则将会穿透打印出所有结果
- 反编译 java---class(字节码文件)通过hashCode来运行switch
循环结构
while循环
- 我们大多情况是会让循环停止下来的,我们需要一个表达式失效的方式来结束循环
- 少部分情况需要一直循环进行,比如服务器的请求响应监听等
//例如打印1到100 public class ddd { public static void main(String[] agrs) { int i = 0; while (i < 100) { i++; System.out.println(i); } } }
- 1~100
public class ddd { public static void main(String[] agrs) { int i = 0; int sum=0; while (i <= 100) { sum+=i; i++; } System.out.println(sum); } }
do..while语句
- 对于while语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足也至少执行一次
- do...while循环和while循环相似,但do.while循环至少会被执行一次
do{//代码语句}while(布尔表达式);
- while和do-while的区别
- while先判断后执行。dowhile是先执行后判断!
- dowhile总保证循环体至少执行一次
public class ddd { public static void main(String[] agrs) { int i = 0; int sum=0; do{ sum+=i; i++; }while (i<=100); System.out.println(sum); } }
for循环
- for循环使一些循环结构变得更加简单。 -for循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构
//死循环 for(;;){}
- 练习:计算0到100的奇数和偶数的和
public class ddd { public static void main(String[] agrs) { int evenSum=0; int oddSum=0; for (int i=0;i<=100;i++){ if (i%2==0){ evenSum+=i; }else { oddSum+=i; } } System.out.println("奇数的和"+oddSum); System.out.println("偶数的和"+evenSum); } }
- 联系:用while或者for循环输出1-1000之间能被5整除的数,并且每行输出3个
public class ddd { public static void main(String[] agrs) { for (int i=0;i<=1000;i++){ if (i%5==0){ System.out.print(i+"\t"); } if (i%(5*3)==0){ System.out.println(); } } } } //println 输出完会换行 //print 输出完不会换行
- 打印九九乘法表
public class ddd { public static void main(String[] agrs) { for (int j = 1; j <= 9; j++) { for (int i = 1; i <= j; i++) { System.out.print(j + "*" + i + "=" + (j * i) + "\t"); } System.out.println(); } } }
- 增强for循环
//遍历数组 public class ddd { public static void main(String[] agrs) { int [] numbers={10,20,30,40,50}; for(int i=0;i<5;i++){ System.out.println(numbers[i]); } for (int x:numbers){ System.out.println(x); } } }
break continue
- break直接返回数据停止循环
- continue跳过当前循环继续下一次的循环并未结束循环
最后一道练习打印5三角形
public class ddd { public static void main(String[] agrs) { //一共5层 for (int i = 1; i <= 5; i++) { //打印空白倒三角 for (int j=5;j>=i;j--){ System.out.print(" "); } //打印前一半* for(int j=1;j<=i;j++){ System.out.print("*"); } //打印后一半 for (int j=1;j<i;j++){ System.out.print("*"); } //结束 System.out.println(); } } }