3.1 程序结构
3.2条件语句
3.2.1 if 条件语句
if条件语句主要用于告诉程序在某个条件成立的情况下执行某段语句,而在另一种情况下执行另外的语句。
使用if条件语句,可选择是否要执行紧跟在条件之后的那个语句。关键字f之后是作为条件的“布尔表达式”,如果该表达式返回的结果为true,则执行其后的语句;若为 false,则不执行f条件之后的语句。if条件语句可分为简单的if条件语句、if...else语句和 if...else if多分支语句。
例3.1
public class li3_4 {
public static void main(String[] args) { //主函数
// TODO Auto-generated method stub
if (true)//让判断条件为真
System.out.println("我没有使用大括号");//输出
if (true)//让判断条件为真
System.out.println("我使用大括号");//输出
}
}
例3.2
import java.util.Scanner;
public class li3_4 {
public static void main(String[] args) { //主函数
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
System.out.println("请输入要拨打的电话号码:");
int phoneNumber = in.nextInt();
if (phoneNumber != 84972266)312312
System.out.println("对不起,您拨打的号码不存在");
}
}
2.if...else语句
if...else语句是冬件语句中最常用的一种形式,它会针对某种处理, 否则就进行另一种处理。
例3.3
public class li3_4 {
public static void main(String[] args) { //主函数
// TODO Auto-generated method stub
int math = 95;//定义math
int english = 56;//定义english
if (math > 60) {//判断条件
System.out.println("数学及格了");//输出
} else {
System.out.println("数学没有及格");//输出
}
if(english > 60) {//判断条件
System.out.println("英语及格了");//输出
} else {
System.out.println("英语没有及格"); //输出
}
}
}
3.if...else if 多分支语句
例3.4
public class li3_4 {
public static void main(String[] args) { //主函数
// TODO Auto-generated method stub
int x = 20 ;//定义x等于20
if (x > 30) {//判断变量是否大于30
System.out.println("a的值大于30");//条件成立的输出信息
}else if (x > 10){//判断变量是否大于10
System.out.println("a的值大于10,但小于等于30");//条件成立的输出信息
}else if (x > 0) {//判断变量是否大于0
System.out.println("a的值大于0,但小于等于10");//条件成立的输出信息
}else {
System.out.printf("a的值小于等于0");//条件成立的输出信息
}
}
}
4.if 语句的嵌套
例3.5
import java.util.Scanner;
public class li3_4 {
public static void main(String[] args) { //主函数
// TODO Auto-generated method stub
int iYear;//定义
Scanner sc = new Scanner(System.in);//使用Scanner
System.out.println("please input number");//输出
iYear = sc.nextInt();//定义值
if(iYear % 4 == 0) {//判断语句
if(iYear % 100 == 0) {//判断语句
if(iYear % 400 == 0)//判断语句
System.out.println("It is a leap year");//输出结果
else
System.out.println("It is not a leap year");//输出结果
}else
System.out.println("It is a leap year");//输出结果
}else
System.out.println("It is not a leap year");//输出结果
}
}
例3.6
import java.util.Scanner;
public class li3_4 {
public static void main(String[] args) { //主函数
// TODO Auto-generated method stub
int iyear; //创建整形变量,保存输入的年份
Scanner sc=new Scanner(System.in);//创建扫描器
System.out.println("please input number");
iyear = sc.nextInt();//控制台输入一个数字
//如果iyear可以被4整除并且不能被100整除,或者iyear可以被400整除
if(iyear%4 ==0&&iyear % 100 != 0||iyear%400 == 0)
System.out.println("It is a leap year");//是闰年
else
System.out.println("It is not a leap year"); //不是闰年
}
}
3.2.2 switch 多分支语句
例3.7
int week = 2; //定义int型变量week
switch (week){//指定switch语句的表达式为变量week
case 1: //定义case语句中的常量为1
System.out.println("Monday");// 输出信息 break;
case 2:// 定义case语句中的常量为2
System.out.println("Tuesday"); break;
case 3:// 定义case语句中的常量为3
System.out.println("Wednesday"); break;
case 4: // 定义case语句中的常量为4
System.out.println("Thursday"); break;
case 5://定义case语句中的常量为5
System.out.println("Friday");break;
case 6:// 定义case语句中的常量为6
System.out.println("Saturday"); break;
case 7:// 定义case语句中的常量为7
System.out.println("Sunday"); break;
default: // default语句,如果week不是1~7之间的数字,则执行此行代码
System.out.println("Sorry,I don't Know");
}
}
}
例3.8
import java.util.Scanner;
public class li3_4 {
public static void main(String[] args) { //主函数
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);//使用Scanner
System.out.println("请输入成绩:");//输出
int grade = sc.nextInt();//定义值
switch (grade) {//判断语句
case 10:
case 9:System.out.println("成绩为优");break;//输出结果
case 8:System.out.println("成绩为良");break;//输出结果
case 7:
case 6:System.out.println("成绩为中");break;//输出结果
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:System.out.println("成绩为差");break;//输出结果
default: System.out.println("成绩无效");//输出结果
}
}
}
例3.9
import java.util.Scanner;
public class li3_4 {
public static void main(String[] args) { //主函数
// TODO Auto-generated method stub
String str="明日科技";
switch (str) {
case "明日": //定义case中的常量1
System.out.println("明日图书网www.mingribook.com");//输出信息
break;
case"明日科技"://定义case中的常量2
System.out.println("吉林省明日科技有限公司");//输出信息
break;
default://default语句
System.out.println("以上条件都不是。");//输出信息
}
}
}
3.3 循环语句
循环语句就是在满足一定条件的情况下反复执行某一个操作。在Java中提供了4种常用的循环
语句,分别是while语句、do...while语句、for语句和foreach语句,其中,foreach语句是for语句的
特殊简化版本。
3.3.1 while循环语句
例3.10
public class li3_4 {
public static void main(String[] args) { //主函数
// TODO Auto-generated method stub
int x = 1;//定义赋值
int sum = 0;//赋值
while (x <= 10) {//循环体
sum = sum + x;//执行语句
x++;
}
System.out.println("sum =" + sum);//输出信息
}
}
3.3.2 do...while 循环语句
例3.11
public class disanzhang {
public static void main(String[] args) { //主函数
// TODO Auto-generated method stub
int a = 100;//定义a等于100
while (a == 60)// 指定进入循环语句
{
System.out.println("ok1");//while循环执行语句
a--;
}
int b = 100;//定义b等于100
do {
System.out.println("ok2");//do...while执行语句循环体
b--;//
} while (b == 60);//指定循环结束条件
}
}
例3.12
public class li3_4 {
public static void main(String[] args) { //主函数
// TODO Auto-generated method stub
int i=0, j=0;//定义i,j的值
System.out.println("before do_while j=" + j);//输出
do {//执行语句
j++;
} while (i > 1);//判断语句
System.out.println("after do while j=" + j);//输出
}
}
例3.13
public class li3_4 {
public static void main(String[] args) { //主函数
// TODO Auto-generated method stub
int i=0, j=0;//定义i,j的值
System.out.println("before do_while j=" + j);//输出
while (i > 1){//判断语句
j++;//执行语句
}
System.out.println("after do while j=" + j);//输出
}
}
3.3.4 for循环语句
例3.14
public class li3_4 {
public static void main(String[] args) { //主函数
// TODO Auto-generated method stub
int sum = 0 ;//赋值
int i; //赋值
for (i = 1; i <= 100; i++) {//循环体
sum += i; //赋值
}
System.out.println("the result :" + sum);//输出结果
}
}
3.3.5 foreach语句
例3.15
public class li3_4 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int arr[]={7,10,1 }; //声明一维数组
System.out.println("一维数组中的元素分别为:"); //输出信息
for (int x:arr){ //foreach语句,intx引用的变量,arr指定要循环遍历的数组最后将x输出
System.out.println(x); //输出X的值
}
}
}
3.3.6 循环语句的嵌套
例3.16
public class li3_4 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int i, j; //创建两个整型变量
for (i=1;i<10;i++){ //输出9行
for (j=1;j<i+1;j++){ //输出与行数相等的列
System.out.print(j + "*" + i + "=" + i * j + "\t"); //输出j*i的值,
}
System.out.println(); //换行
}
}
}
3.4 跳转语句
跳转语句包含两方面的内容,一方面是控制循环变量的变化方式,也就是让循环判断中的逻辑关系表达式变成false,从而达到终止循环的效果;一方面是控制循环的跳转。控制循环的跳转需要用到break和continue两个关键字,这两条跳转语句的跳转效果不同,break是中断循环,continuc是直接执行下一次循环。
3.4.1 break语句
例3.17
public class li3_4 {
public static void main(String[] args) { //主函数
for (int i = 1; i < 20; i++) {//循环体语句
if (i % 2 == 0) {//判断语句
System.out.println(i);//输出语句
break;
}
}
System.out.println("---end---");//输出信息
}
}
例3.18
public class li3_4 {
public static void main(String[] args) { //主函数
for (int i = 0; i < 3; i++) {//循环体语句
for (int j = 0; j < 6; j++) {//循环体语句
if ( j == 4) {//判断语句
break;
}
System.out.println("i+" + i + "j" + j);//输出语句
}
}
}
}
例3.19
public class li3_4 {
public static void main(String[] args) { //主函数
Loop:for (int i = 0; i < 3; i++) {//在for循环前用标签标记
for (int j = 0; j < 6; j++) {//循环体语句
if ( j == 4) {//判断语句
break Loop;//跳出Loop标签标记的循环体
}
System.out.println("i+" + i + "j" + j);//输出语句
}
}
}
}
3.4.2 continue 语句
例3.20
public class li3_4 {
public static void main(String[] args) { //主函数
for (int i = 1; i < 20; i++) {//循环体语句
if ( i % 2 != 0) {//判断语句
continue;//跳到下一循环
}
System.out.println(i);//输出语句
}
}
}