程序主要分为三种逻辑:顺序,分支,循环。
if 分支语句
if分支语句是最为基础的分支操作,但是其有三种使用形式;
if语句
if.....else 语句
if....else...if...else 语句
if(布尔表达式){条件满足时执行}
if(布尔表达式){条件满足时执行}else{条件不满足时执行}
if(布尔表达式){条件满足时执行}else if (布尔表达式){条件不满足时执行}else if (布尔表达式){条件不满足时执行}......[else{条件都不满足时执行}]
利用if语句只能够判断满足条件时的执行
如果现在要想进行更多的条件判断,那么就使用if...else if...else if....else.....
switch分支语句(很少会优先考虑)
应用if....else 可以实现多条件的验证,而switch 只能够进行多数值的判断,而且switch 本身支持的判断数据类型
标准做法:int,char;
JDK 1.5 支持了枚举;
JDK 1.7 支持了字符串;
对于switch语法结构如下:
switch(变量/内容){case数值:
数值满足时执行的语句;break;case数值:
数值满足时执行的语句;break;default:
没有数据满足时执行的语句;
}
switch(表达式){case 常量 1:
代码块1;break;case常量2 :
代码块2;break;default:
代码块3;break;
}
在使用switch语句之中如果在每一case之后不加上 break。 那么就表示在第一个case满足条件之后将一直执行,执行到遇见break或者整个switch执行完毕为止。所以好的习惯一定要在每一个 case 中使用 break。
从JDK 1.7 开始 switch 进行了扩充,支持了字符串的验证。
在进行字符串判断时候依然需要考虑到大小写问题。
public classCompete{public static voidmain( String [] args){int mingci = 1; //名次
switch(mingci){case 1:
System.out.println("参加理工大学组织的一个月夏令营活动");break;case 2:
System.out.println("奖励惠普笔记本一台");break;case 3:
System.out.println("奖励惠普笔记本一台");break;default:
System.out.println("没有任何奖励");break;
}
}
}
循环语句
循环的意义本身非常的好理解,就是让一段代码重复执行。但是在循环语句之中,实际上定义有两类循环:while 循环,for循环。
while循环语法:
while 循环中分为两种形式:while,do...while。
while(条件){
语句;
}
当while循环开始后,先判断条件是否满足,如果满足就执行循环体内的语句,执行完毕后再回来判断条件是否满足,如此无限重复;直到条件不满足时,执行while循环后边的语句。
举个简单的例子
n=0;while(n<2){
n++;
}
首先给n赋值0,然后开始while循环,判断n<2是否满足,满足,然后执行n++;此次循环后n=1,再返回判断n<2是否满足,满足,执行n++,之后n=2;再返回判断n<2是否满足,不满足,结束while循环。
while循环:
do....while 循环:
循环初始化条件;while(判断循环结束条件){ 执行循环语句; 修改循环控制; 如果不修改出现死循环}
循环初始化条件;do{执行循环语句; 修改循环控制;如果不修改出现死循环}while(判断循环结束条件)
public classTestDemo{public static voidmain(Srting ars[]){//希望在循环之中x 的内容可以按照1,2,3,4,5...100的方式增长//实际上当x 的内容增长到了100的时候那么就表示循环的结束
int x = 1;int sum = 0;//x = 1,x = 2,x = 3,...x = 100,x=101 (循环结束)
while(x<100){
sum+=x; //进行数据累加
x ++; //修改循环的控制,x 自增1
}
System.out.println(sum);
}
}
while 与 do...while 循环的最大区别在于:while 先判断后执行,而 do...while 先执行一次再判断,如果条件不满足,while 执行 0 次,do..while 执行 1 次。以后不用do...while。
for 循环
for 循环的语句要比 while 循环简化,其形式如下:
for(循环初始化条件;循环判断;改变循环条件){
循环语句;
}
//循环打印a-z
for(int j=0;j<26;j++){char temp = (char)(97+j);
System.out.print(temp);
}
public classTestDemo{public static voidmain(Srting ars[]){for(int x = 0;x<10;x++){if(x == 2){continue; //此语句之后的循环体代码不执行,而直接结束本次循环
}
System.out.println(x);
}
}
}
使用for 循环打印下面的图形
public classCompete{public static voidmain( String [] args){//从上到下循环5次,每次输出星号,但位置是要算出来的,可以看出是每行9列,能排出这个阵势
String a = "*";
String b= "";int count = 5;//全局定义输出几行
for (int temp = 1; temp < (count + 1); temp++){if (temp != 1){//第1次就是一个×
a += " *";//逐行构造 × ×× ×××
}//这里写一个方法,传入a,和当前第几行,还有要输出多少行,返回带空格的字符串,去形成居中的版式
b =trans(count, temp, a);
System.out.println(b);
}
}
}
private static String trans(int count,inttemp,String a){
String b=a;for (int temp2 = count; temp2 > temp; temp2--){
//以5行为例,第1次循环4次,第2次循环3次,在前面加空格
b = " " +b;
}returnb;
}
循环总结
现在给出了while 和 for 两种循环,那么用那个呢?
1.如果已经明确知道循环次i数就使用 for 循环;
2.如果不知道循环次数,但是知道循环条件,那么使用 while 循环。
循环控制
循环默认情况下肯定要一直执行,直到循环条件满足,但是在循环的执行中提供有两个循环的控制语句:continie(中断一次),break(跳出循)
一般这样的两个语句都会结合if 语句来一起使用。
String就是C++、java等编程语言中的字符串,用双引号引起来的几个字符.如"Abc","一天"
总结
现阶段不要求编写过于复杂的循环操作。