当一个运算对象两侧运算符的优先级别相同时, 运算对象与运算符的结合顺序
控制语句
控制语句分为条件语句和循环语句。
条件语句
分别有 if … else,switch语句
在运用if… else时,若想做出2个以上的判断可以继续添加else if(条件)
int a=40;
int b=30;
if(a>b){
System.out.println(a);
}
else{
System.out.println(b);
}
else if{
System.out.println(a+b);
}
switch:多分支选择语句,根据表达式的值,来执行多个操作中的一个
switch (表达式){
case value1: 语句序列1;
[break];
…………
case valueN: 语句序列N;
[break];
[default : 缺省语句;]
}//如果没有break的话,语句就会继续执行直到遇到break或结束为止.
public static void main(String[] args) {
Scanner a=new Scanner(System.in);
int score=a.nextInt();
switch (score/10){
case 1:
case 2:
case 3:
case 4:
System.out.println("好");
break;
case 5:
System.out.println("很好");
break;
default:
System.out.println("好已经满足不了你了");
}
}
表达式可以是byte、short、int、char类型。JDK 7以后,可以使用String类型;
case语句后面只能使用常量表达式,case后的值不能重复;
在条件语句中if被运用的更广,在条件过多的情况下更推荐使用switch效率更高。
循环语句
1.while 语句为如下形式:
while(逻辑表达式){ 语句; … ; }
执行过程
先判断逻辑表达式的值。若=true.则执行其后面的语句,然后再次判断条件并反复执行,直到条件不成立为止
while(a==10){
b++;
a++;
}
System.out.println("循环执行了"+b+"次");
-
do…while语句如下形式:
do { 语句; … ; } while(逻辑表达式);
执行过程
先执行语句,再判断逻辑表达式的值,若为true,再执行语句,否则结束循环
do{
a++;
b++;
}while(a==10);
System.out.println("循环执行了"+b+"次");
3.for语句如下形式:
for(表达式1; 表达式2; 表达式3){ 语句; … ; }
for(int c=1;c<a;){
//需要执行的语句
}
执行过程
先判断表达式一,在进行对表达式二的判断若为true,则继续进行表达式三,若表达式三为空白默认为表达式一中的参数加一;
out:for(int i=0;i<=10;i++){
for(int j=0;j<10;j++){
if(j==5){
break out;
}
}
System.out.println("j"+j);
}
System.out.println("i"+i);
}
}
也可以通过标记来结束外层循环
增强For循环
int[]a={2,3,4,5,6};
for(int t:a){ //a代表集合,将集合a中的值赋值给t进行循环
System.out.println(t);
}
break&continue的区别
break:可以从某个程序中直接终止。
int stop = 4;
for (int i = 1; i <= 10; i++) {
//当i等于stop时,退出循环
if (i == stop){
break;
}
System.out.println(" i= " + i);
}
//i=1;i=2;i=3
continue:可以从某个程序直接跳过来执行下个未执行的程序。
int skip = 4;
for (int i = 1; i <= 5; i++) {
//当i等于skip时,跳过当次循环
if (i == skip){
continue;
}
System.out.println("i = " + i);
}
//i=1;i=2;i=3;i=5;
return语句
return语句用于从当前执行的方法中退出, 返回到调用该方法的语句处继续执行。
有两种格式:
return 表达式; //将表达式的值返回
return; //不返回任何值,当方法说明中用void声明无返回值时, 可以使用这种格式,此类return语句有时可省略
课后题: 输出正三角形与菱形
正三角形
Scanner sc=new Scanner(System.in);
System.out.println("请输入三角形的行数");
int sum=sc.nextInt();
System.out.println("请输入你想要的形状");
String x=sc.next();
for(int num=1;num<=sum;num++){
for(int a=1;a<=sum-num;a++){
System.out.print(" ");
}
for (int b=1;b<=num*2-1;b++){
System.out.print(x);
}
System.out.println();
}
菱形
Scanner sc=new Scanner(System.in);
System.out.println("请输入菱形行数");
int sum=sc.nextInt();
int n=0;
//判断能否构成菱形
if (sum%2==0){
System.out.println("无法构成菱形");
return;
}else{
n=sum/2+1;
//上半部分
for(int i=1;i<=n;i++){
for (int j=1;j<=n-i;j++){
System.out.print(" ");
}
for (int k=1;k<=2*i-1;k++){
System.out.print("*");
}
System.out.println();
}
//下半部分
for (int i=1;i<=sum-n;i++){
for (int j=1;j<=i;j++){
System.out.print(" ");
}
for (int k=1;k<=sum-2*i;k++){
System.out.print("*");
}
System.out.println();
}
}