选择、循环、跳转
块(block):复合语句;由一对{ }起来的Java语句
block控制着变量的作用域(scope)
public static void main(String[] args){
int a;
...
{
int a;
int b;
...
}
...
}
上面的代码中b的scope只在block内,在block外失去作用
并且Java不允许两个嵌套的块内声明两个名相同的变量如a
选择语句
1.if
if(条件)
statement
if(条件
{block}
条件为关系表达式(判断大小)或boolean
import java.io.*;
public class welcome{
public static void main(String[] args) throws IOException{
final int MAX_NUM=50;
//键盘输入整数存放x中
InputStreamReader ir;
BufferedReader in;
ir=new InputStreamReader(System.in);
in=new BufferedReader(ir);
System.out.println("Input x is");
String s=in.readLine();
int x=Integer.parseInt(s);
if(x<MAX_NUM) {
System.out.println("x="+x);
}
}
}
if-else结构
符号函数sgn(number)
x>0 | y=1 |
---|---|
x=0 | y=0 |
x<0 | y=-1 |
import java.io.*;
public class welcome{
public static void main(String[] args) throws IOException{
InputStreamReader ir;
BufferedReader in;
ir=new InputStreamReader(System.in);
in=new BufferedReader(ir);
System.out.println("Input x is");
String s=in.readLine();
int x=Integer.parseInt(s);
int y;
if(x<0) {
y=-1;
}
else if(x==0) {
y=0;
}
else {
y=1;
}
System.out.println("x="+x+" y="+y);
}
}
闰年判断问题
import java.io.*;
public class welcome{
public static void main(String[] args) throws IOException{
InputStreamReader ir;
BufferedReader in;
ir=new InputStreamReader(System.in);
in=new BufferedReader(ir);
System.out.println("Input year is");
String s=in.readLine();
int year=Integer.parseInt(s);
if(year%4==0&&year%100!=0||year%400==0) {
System.out.println("year "+year+" is a leap year");
}
else {
System.out.println("year "+year+" is not a leap year");
}
}
}
2.switch语句
1.多选项时if麻烦,可以尝试switch,不需要boolean流程控制语句
表达式只能返回int、byte、short和char。比如数据类型为double不能用switch
2.case后面的值必须是常量,所有case后面的值应不同
3.表达式的值和case字句的值不匹配时,执行default;如果没有default并且没有匹配值,不做任何操作,直接跳出switch
4.break用来执行完一个case分支之后程序跳出switch
5.case是一个查找匹配的入口
public class switchdemo{
public static void main(String args[]){
int month=4;
String season;
switch(month){
case 12:
case 1:
case 2:
season = "winter";
break;
case 3:
case 4:
case 5:;
season = "spring";
break;
case 6:
case 7:
case 8:
season = "summer";
break;
case 9:
case 10:
case 11:
season = "autumn";
break;
default:
season = "bogus month";
}
System.out.println(season);
}
}