java中存在三总基本结构,分别是顺序结构、选择结构、循环结构
一.顺序结构顺序结构就是程序依次从上到下一行一行的执行代码,没有判断和中转。
public class StringTest { public static void main(String args[]){ boolean x=true; boolean y=false; short s=42; if((s++==42)&&(y=true)) s++; if((x=false)||(++s==45)) s++; System.out.println("s="+s); } }二.选择结构
判断条件是否满足,选择是否条件条件判断后的执行语句
if条件语句
1.if语句
if(判断条件){
执行语句
}
public class ForTest { public static void main(String args[]) { for(int i=1;i<=150;i++) { System.out.print(i+" "); if(i%3==0) { System.out.print("foo "); } if(i%5==0) { System.out.print("biz "); } if(i%7==0) { System.out.print("baz "); } System.out.println(); } } }
2.if-else语句
if(判断语句){
执行语句1
…
}else{
执行语句2
…
}
3.if-else if-else语句
if(判断条件1){
执行语句1
…
}else{
执行语句2
…
}
…else if(判断条件n){
执行语句n
…
}else{
执行语句n+1
…
}
public class IfTest01 { public static void main(String args[]) { int score=86; if(score<60) { System.out.println("没有及格,下次努力!"); }else if(score>=60 && score<70) { System.out.println("刚好及格"); }else if(score>=70 && score<80) { System.out.println("成绩良好"); }else if(score>=80){ System.out.println("成绩优秀"); } } }
switch-case条件语句
switch(控制表达式){
case 目标值1:
执行语句1
break;
case 目标值2:
执行语句2
break;
case 目标值3:
执行语句3
break;
…
case 目标值n:
执行语句n
break;
default:
执行语句n+1
break;
}
说明:
switch控制表达式的结果类型只能是byte、short、char、int、枚举类型、String类型,而不能是boolean类型;
break不是必须的,可以根据实际情况选择是否书写,若不书写,则从上到下依次满足条件后执行各个case中的执行语句,遇到break结束;
default相当于if-else中的最后的else,当所有条件不成立时,执行default后的语句。
谈谈三元运算符、if-else条件判断、switch-case三个结构的认识。
三元运算符、switch-case可以转换为if-else条件判断,反之未必适用;
当三种结构都可以适用的时候,优先选择三元运算符和switch-case,比较高效;
当分支比较少时优先选择switch-case;
知识扩展:
算法=程序+数据结构
1.for循环结构:
格式:
for(初始化条件;循环条件(boolean类型);迭代条件){
循环体
}
执行顺序:初始化条件(该步骤只执行一次)—>循环条件—>循环体—>迭代条件—>循环条件—>循环体
//例1:水仙花数:是指一个三位数的个,十,百位对应的三次幂之和等于它本身;例如:153=1*1*1+5*5*5+3*3*3 public class ForTest05 { public static void main(String args[]) { //输出三位数以内的所有水仙花数 int ge=0; int shi=0; int bai=0; for(int i=100;i<1000;i++) { bai=i/100; shi=i%100/10; ge=i%100%10; if(ge*ge*ge+shi*shi*shi+bai*bai*bai==i) { System.out.println(i); } } } }
//例2:从键盘输入两个数m,n,求最大公约数和最小公倍数 public class ForTest04 { public static void main(String args[]) { Scanner sc=new Scanner(System.in); System.out.println("请输入第一个数m:"); int m=sc.nextInt(); System.out.println("请输入第二个数n:"); int n=sc.nextInt(); int min=(m<=n)?n:m; //求两个数的最小值 for(int i=min;i>=1;i--) { if(m%i==0 && n%i==0) { System.out.println("最大公约数是:"+i); break; //跳出for循环 } } int max=(m>=n)?m:n; //求两个数的最大值 for(int i=max;i<=m*n;i++) { if(i%m==0 && i%n==0) { System.out.println("最小公倍数是:"+i); break; //跳出for循环 } } } }
嵌套循环:
将一个循环嵌套在另一个循环体中,嵌套在内部的循环称为内循环,在外部的循环称为外循环,循环可以嵌套多层,不止于两层。
public class ForTest07 { public static void main(String args[]) { //输出1000以内的质数 for(int i=2;i<=1000;i++) { boolean flag=true; for(int j=2;j public class WanShuTest { public static void main(String[] args) { //求1000以内的完数 for(int i=1;i<1000;i++) { int num=0; for(int j=1;j<=i/2;j++) { if(i%j==0) { num+=j; } } if(num==i) { System.out.print(num+" "); } } } }2.while循环
格式:
while(循环条件){
执行语句
…
}public class ForWhileTest { public static void main(String args[]) { //从键盘输入不确定的多个整数,当输入0时结束,统计正数和负数的个数 Scanner sc=new Scanner(System.in); int positivenumber=0; int negativenumber=0; System.out.println("请输入:"); //判断输入数字的正负 while(true) { int x=sc.nextInt(); if(x<0) { negativenumber++; }else if(x>0) { positivenumber++; }else { break; //当输入0时,退出while循环,不再输入 } } System.out.println("正数个数是"+positivenumber+",负数个数是"+negativenumber); } }3.do-while循环
格式:
do{
执行语句
…
}while(循环条件);
注意:
do-while循环不管条件是否成立,都会执行一次。
4.循环结构中的break和continue关键字举例说明:
break默认结束距离它最近的一层循环结构,continue默认退出距离它最近的当次循环,此外可以指定需要退出的外层循环;public class ForTest06 { public static void main(String args[]) { outer:for(int i=1;i<=10;i++) { for(int j=1;j<=i;j++) { System.out.print("*"); if(j==4) { break outer; //continue outer; } } System.out.println(); } } }public class ForTest06 { public static void main(String args[]) { outer:for(int i=1;i<=10;i++) { for(int j=1;j<=i;j++) { System.out.print("*"); if(j==4) { //break outer; continue outer; } } System.out.println(); } } }public class ForTest08 { public static void main(String args[]) { //break和continue测试 int number=15; for(int i=1;i结果:
public class ForTest08 { public static void main(String args[]) { //break和continue测试 int number=15; for(int i=1;i
关于Scanner的补充说明:
Scanner类是java内部的类,定义在jav.util包中,用于从键盘输入,使用时只需要引入对应的Scanner类后,声明一个Scanner对象即可以使用。
例如:import java.util.Scanner; //引入Scanner类 Scanner sc = new Scanner(System.in); //声明Scanner对象 int num = sc.nectInt(); //输入变量num欢迎分享,转载请注明来源:内存溢出
评论列表(0条)