目录:
选择结构
if单选择结构
有很多时候需要先去判断一个东西是否可行,然后才去执行,这么一个过程在程序中用if语句表示
语法:if(布尔表达式){//如果布尔表达式为true,则执行此语句}
Scanner scanner=new Scanner(System.in);
System.out.println("请输入内容:");
String str=scanner.nextLine();
//equals:判断字符串是否相等
if(str.equals("Hello")){
System.out.println(str);
}
scanner.close();
if双选择结构
通俗而言就是有两条路,如果可执行就走其中一条路,不可执行就走另外一条路
语法:
if(布尔表达式){
//如果布尔表达式为true,则执行此语句
}else{
//如果布尔表达式为false,则执行此语句
}
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();
if多选择结构
现实中我们存在的情况不是只有AB,还可能存在ABCD,所以需要有多选择结构来满情况多的案例
语法:
if(布尔表达式 1){
//如果布尔表达1式为true,则执行此语句
}else if(布尔表达式 2){
//如果布尔表达式2为true,则执行此语句
}else if(布尔表达式 3){
//如果布尔表达式3为true,则执行此语句
}else{
//如果以上布尔表达式都为false,则执行此语句
}
Scanner scanner=new Scanner(System.in);
System.out.println("请输入成绩:");
double score=scanner.nextDouble();
if(score==100){
System.out.println("满分");
}else if(score<100 && score>=90){
System.out.println("A");
} else if (score<90 && score>=80) {
System.out.println("B");
} else if (score<80 && score>=70) {
System.out.println("C");
} else if (score<70 && score>=60) {
System.out.println("D");
}else{
System.out.println("不及格");
}
scanner.close();
switch多选择结构
多选择结构还有一个实现方式就是switch case语句
switch case语句判断一个变量与一系列值中的某个值是否相等,每一个值称为一个分支
格式:
switch(expression){
case value:
//语句
break;//可选
case value:
//语句
break;//可选
//你可以有任意数量的case语句
default://可选
//语句
}
switch语句中的变量类型可以是:
-
byte short int或者char
-
从JavaSE7开始
-
switch支持字符串String类型了
-
同时case标签必须为字符串常量或字面量
char grade='A'; switch (grade){//case:穿透,如果满足其中一个case,要是后面没有出现break来终止的话,该程序就会一值跑下去 case 'A': 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("再见"); } String name="啊泰"; //JDK7新特性:switch支持字符串String类型了 switch (name){ case "啊明": System.out.println("啊明"); break; case "啊昊": System.out.println("啊昊"); break; case "啊泰": System.out.println("啊泰"); break; }
循环结构
while循环
while循环是最基本的循环,他的结构为:
while(布尔表达式){
//循环内容
}
注意:
-
只要布尔表达式为true,循环就会一直执行,会影响程序性能或者造成程序卡死崩溃,要避免
-
大多数情况是会让循环停下来,所以需要一个表达式失效的方式来结束循环
-
少部分循环是需要一直执行,比如服务器请求响应监听等
//输出1+2+3+4+....100
int sum=0;
int i=1;
while (i<=100){
sum=sum+i;
i++;
}
System.out.println("1+2+3+4+....100="+sum);
do....while循环
前提:对于while而言,只要不满足条件,则不能进入循环,但有时候即使不满足条件,我们也想让他执行一次
do...while循环和while循环相似,不同点在于,do...while循环至少会被执行一次!
do{
//代码语句
}while(布尔表达式);
//输出1+2+3+4+....100
int sum=0;
int i=1;
do {
sum+=i;
i++;
}while (i<=100);
System.out.println(sum);
while和do...while区别:
-
while先判断在执行,do...while是先执行后判断
-
do...while循环至少会被执行一次!
int a=0;
while (a<0){
System.out.println(a);
}
System.out.println("==================");
do {
System.out.println(a);
}while (a<0);
for循环
for循环,使一些循环结构变得更加简单
for循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构
for循环执行的次数是在执行前就开始确定的,语法格式如下:
for(初始化; 布尔表达式 ; 更新){
//代码语句
}
for (int i=1;i<=100;i++){
System.out.println(i);
}
System.out.println("for循环结束");
//计算0~100之间的奇数和偶数的和
//基数
int sum1=0;
for (int i=1;i<100;i+=2){
sum1=sum1+i;
}
System.out.println("0~100之间的奇数和为:"+sum1);
//偶数
int sum2=0;
for (int i1=2;i1<100;i1+=2) {
sum2 += i1;
}
System.out.println("0~100之间的偶数和为:"+sum2);
//一步到位写法
int oddSum=0;
int evenSum=0;
for (int i = 0; i < 100; i++) {
if (i%2!=0){
oddSum+=i;
}else{
evenSum+=i;
}
}
System.out.println("奇数的和:"+oddSum);
System.out.println("偶数的和:"+evenSum);
//用while或for循环输出1~100之间能被5整除的数,并且每行输出3个
//for
for(int i=1;i<100;i++){
if(i%5==0){
System.out.print(i+"\t");
}
if (i%(5*3)==0){//每行输出3个
System.out.println();
}
}
//while
int a=1;
while (a<100){
if(a%5==0){
System.out.print(a+"\t");
}
if (a%(5*3)==0){//每行输出3个
System.out.println();
}
a++;
}
//打印九九乘法
for(int i=1;i<=9;i++){
for (int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+(j*i)+"\t");
}
System.out.println();
}
增强for循环
语法如下:
for(声明语句:表达式){
//代码句子
}
声名语句:声名新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。
表达式:表达式是要访问的数组名,或者返回值为数组的方法
主要是用于数组或集合的循环
int[]numbers={10,20,30,40,50};//定义了一个数组
//遍历数组元素
for(int x:numbers){
System.out.println(x);
}
break & continue
break:在任何循环语句的主体部分,均可用break控制循环的流程。break用于强制退出循环, 不执行循环语句中剩余的语句(break语句也在switch语句中使用)
int i=0;
while (i<100){
i++;
System.out.println(i);
if(i==30){
break;//强制终止循环
}
}
continue:语句用在循环语句体中,用于终止某次循环过程,及跳过循环体中尚未执行的语句, 接着进行下一次是否执行循环的判定
int i=0;
while (i<100){
i++;
if(i%10==0){
System.out.println();
continue;//只是终止此次循环,会跳到下一个循环
}
System.out.print(i+"\t");
}
练习
//打印三角形
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();
}