java基本结构
顺序结构
一句一句往下执行,顺序结构是最简单的语法结构。
1 2 public class Hello{ 3 public static void main(String []args) 4 { 5 System.out.println("Hello1"); 6 System.out.println("Hello2"); 7 System.out.println("Hello3"); 8 System.out.println("Hello4"); 9 System.out.println("Hello5"); 10 System.out.println("Hello6"); 11 } 12 }
选择结构
常见选择结构if()
语法:
if( boolean类型数据)
{
boolean类型条件成立时执行,不成立时跳过。
}
if() else型
语法:
if(条件)
{ 成立时执行。}
else
{ 不成立时执行。 }
eg:
1 package Struct; 2 3 import java.util.Scanner; 4 5 public class Deom01 { 6 public static void main(String[] args) 7 { 8 Scanner scanner=new Scanner(System.in); 9 System.out.println("请输入一个整型数据"); 10 int x=1; 11 if(scanner.hasNextInt()) 12 { 13 x= scanner.nextInt(); 14 System.out.println("得到的整型数据为:"+x); 15 } 16 else 17 System.out.println("输入的数据不是整型的哦"); 18 scanner.close(); 19 } 20 } 21
esle if型
语法:
if(条件1) {1成立时执行}
else if(条件二) {2成立时执行}
else if(条件三) {3成立时执行}
else
{ 以上都不符合时执行。}
注:
else if可以无限嵌套,但是其中只有一条会被执行,执行语句后跟的else if()和else 都被跳过,不再判断执行。
eg:
1 package Struct; 2 3 import java.util.Scanner; 4 //判断成绩分级 5 public class Deom02 { 6 public static void main(String[] args) { 7 int score=-1; 8 System.out.println("输入分数:"); 9 Scanner scanner=new Scanner(System.in); 10 if(scanner.hasNextInt()) 11 score= scanner.nextInt(); 12 if(score>=60&&score<=69) 13 System.out.println("及格"); 14 else if(score>=70&&score<80) 15 System.out.println("良好"); 16 else if(score>=80&&score<90) 17 System.out.println("优秀"); 18 else if(score>=90&&score<=100) 19 System.out.println("非常优秀啊"); 20 else if(score>0&&score<60) 21 System.out.println("不及格啊"); 22 else 23 System.out.println("输入的成绩不合法"); 24 25 } 26 }
switch(){case}结构
语法:
switch(比较值)
{
case 选值1:
成立时的操作;
break;
case 选值2:
成立时的操作;
break;
......
default:
以上都不成立时的操作;
}
注:字符串String的比较在java SE 7及以上才可以使用,case穿透现象是指当
case成立后其后和本身都没有break时,其后所有的选项都会被执行。
eg:
1 package Struct; 2 3 import java.util.Scanner; 4 5 public class Demo03 { 6 public static void main(String[] args) { 7 Scanner s=new Scanner(System.in); 8 System.out.println("输入成绩等级!"); 9 String x = s.next(); 10 switch(x){ 11 case "A": 12 System.out.println("成绩为A"); 13 break; 14 case "B": 15 System.out.println("成绩为B"); 16 break; 17 case "C": 18 System.out.println("成绩为C"); 19 break; 20 default: 21 System.out.println("输入有误!"); 22 } 23 24 } 25 }
反编译
简单讲解利用IDEA进行反编译,
首先,打开File--->project struct--->复制文件夹路径
打开我的电脑输入路径进入文件夹,找到.class文件,将该文件复制进我们当前的包路径,在IDEA中打开该文件,即可看到反编译的代码。
循环结构
1、while(){}循环
语法:
while(布尔语句)
{ 循环内容;}
当布尔语句为true时循环执行,当布尔语句为false时循环停止。先判断后执行,错误一次都不执行当一直为true时为死循环,程序一直执行,少数情况下例如等待服务器响应等会用到,一般应避免死循环。一般需要一个表达式失效的条件结束循环。
eg:
1 package Struct; 2 3 public class Demo04while { //计算1+2+3+4···+100的值 4 public static void main(String[] args) { 5 int x=0; 6 int sum=0; 7 while(x<100) 8 { 9 x++; 10 sum+=x; 11 } 12 System.out.println(sum); 13 } 14 }
2、 do{ }while(); 循环
语法:
do{ 循环内容; }while(布尔语句);
与while的区别主要是,不管布尔语句正确与否都会先执行一次,后再根据布尔语句确定是否继续循环。
3、for(){} 循环
语法:
for(初始化; 布尔语句; 迭代)
{ 循环内容 }
IDEA快捷键,100.for 可以快速写出for循环100次。
执行顺序为:先执行初始化,然后是布尔判断,true时执行循环,false时跳过循环,执行循环后,进行迭代,迭代后继续判断布尔语句的正确与否,然后继续循环或结束循环。
初始化可以为空(在for外面写 ),布尔语句以为空是死循环,迭代也可以写在循环体内部
eg:
1 2 package Struct; 3 4 public class Demofor05 { 5 public static void main(String[] args) {//输出一百以内能被5整除的数,每行输出三个 6 for(int i=1;i<=100;i++) 7 { 8 if(i%5==0) 9 { 10 System.out.print(i+"\t"); 11 if(i%(5*3)==0) //出现能被3*5整除的说明已经输出3次了,换行! 12 System.out.println(); 13 } 14 } 15 } 16 17 }
循环的嵌套使用,外层循环一遍,内层循环一圈!
for( )
{
for( ) { }
}
常见案例:打印9 9乘法表!
package Struct; public class Demo06For { public static void main(String args[]) { for (int i = 1; i <=9; i++) { //外层循环 for (int i1 = 1; i1 <=i; i1++) { //内层循环 System.out.print(i1+"*"+i+"="+i*i1+"\t"); } System.out.println(); } } }
for(){}增强!
java5以后新增的共能,
语法:
for(声明语句 : 表达式 ) //声明语句是定义的变量,表达式是数组或者返回值为数组的方法。
{
循环内容;
}
eg:
1 int []numbers={1,2,3,4,5}; 2 3 for( int x : numbers) 4 5 { 6 7 System.out.print(x); 8 9 }
结果:
循环五次,每次的输出结果为numbers数组里的值1,2 ,3,4,5
break和continue
break;跳出当前循环,即该循环停止不再执行。
continue;跳出本次循环,开始下次循环。
标签操作,给外层循环一个标签,在内层循环continue或者break标签可以直接跳出这个外层循环
eg
1 outer: for(int i=1;i<5;i++) 2 { 3 for(int x=1;x<5;x++) 4 { 5 if(x==2) 6 { 7 continue outer;//可以直接结束外层的本次循环,开始下一次循环 8 } 9 } 10 } 11