3.1 程序结构
3.2条件语句
3.2.1 if 条件语句
if条件语句主要用于告诉程序在某个条件成立的情况下执行某段语句,而在另一种情况下执行另外的语句。
使用if条件语句,可选择是否要执行紧跟在条件之后的那个语句。关键字f之后是作为条件的“布尔表达式”,如果该表达式返回的结果为true,则执行其后的语句;若为 false,则不执行f条件之后的语句。if条件语句可分为简单的if条件语句、if...else语句和 if...else if多分支语句。
例3.1
package di3zhang;
public class li1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
if (true) //让判断条件永远为真
System.out.println("我没有使用大括号");
if (true) {//让判断条件永远为真
System.out.println("我使用大括号");
}
}
}
例3.2
package di3zhang;
import java.util.Scanner;
public class li2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);//创建scanner对象,用于进行输入
System.out.println("请输入要打的电话号码:");
int phoneumder = in.nextInt();//创建变量,保存电话号码
if (phoneumder != 8497226)//判断此号码是否是84972266
//如果不是这个号码,则提示号码不存在
System.out.println("对不起,你拨打的号码不存在!");
}
}
2.if...else语句
if...else语句是冬件语句中最常用的一种形式,它会针对某种处理, 否则就进行另一种处理。
例3.3
package di3zhang;
public class li3 {
public static void main(String[] args) {//主方法
// TODO Auto-generated method stub
int mate = 95; //声明int型局部变量,并赋给初值95
int english = 56; //声明int型局部变量,并赋给初值56
if (mate >= 60) { //使用if语句判断math是否大于60
System.out.println("数学及格了");//条件成立时输出的信息
}else {
System.out.println("数学没有及格");//条件不成立时输出的信息
}
if (english >= 60) {//判断英语成绩是否大于60
System.out.println("英语及格了");//条件成立输出的信息
}else {
System.out.println("英语没有及格");//条件不成立输出的信息
}
}
}
3.if...else if 多分支语句
例3.4
package di3zhang;
public class li4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int x =20;
if (x>30) {//判断变量x是否大于30
System.out.println("a的值大于30");//条件成立的输出信息
}else if (x>10) {//判断变量x是否大于10
System.out.println("a的值大于10,但小于30");//条件成立的输出信息
}else if (x>0) {//判断变量x是否大于0
System.out.println("a的值大于0,但小于10");//条件成立的输出信息
}else {//以上条件都不成立,执行的语句
System.out.println("a的值小于0");//输出信息
}
}
}
4.if 语句的嵌套
例3.5
package di3zhang;
import java.util.Scanner;//导入输出函数需要用到的包
public class li5 {
public static void main(String[] args) {
int iYear;//创建整型变量,保存输入的年份
Scanner sc=new Scanner (System.in);//创建扫描器
System.out.println("please input number");
iYear=sc.nextInt(); //控制台输入一个数字
if(iYear%4==0) { //如果能被4整除
if(iYear%100==0) { //如果能被100整除
if(iYear%400==0) //如果能被400整除
System.out.println("It 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 ont a leap year"); //不是闰年
}
}
例3.6
package di3zhang;
import java.util.Scanner;//导入输出函数需要用到的包
public class li6 {
public static void main(String[] args) {
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"); //不是闰年
}
}
4.if 语句的嵌套
例3.7
public class li7 {
public static void main(String[] args) {
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
package di3zhang;
import java.util.Scanner;
public class li8 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入成绩");// 输出信息 break;
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("成绩无效"); break;
}
}
}
例3.9
package di3zhang;
public class li9 {
public static void main(String[] args) {
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.10
package di3zhang;
public class li10 {
public static void main(String[] args) {
int x=1;// 定义int型变量x,并赋给初值
int sum= 0;// 定义变量用于保存相加后的结果
while (x <= 10) {
sum =sum+x;// while循环语句,当变量满足条件表达式时执行循环体
x++;
}
System.out.println("sum="+sum);//将变量sum输出
}
}
例3.11
package di3zhang;
public class li11 {
public static void main(String[] args) {
int a=100;//声明Int型变量a并赋初值100
while (a==60)//指定进入循环体条件
{
System.out.println("ok1");//while语句循环体
a--;
}
int b=100;//声明int型变量b并赋初值100
do {//do...while语句循环体
System.out.println("ok2");//条件不成立时输出的信息
b--;
} while(b==60);//指定循环结束条件
}
}
例3.12
package di3zhang;
public class li12 {
public static void main(String[] args) {
int i=0,j=0;//定义i,j的值为0
System.out.println("before do_while j="+j); //输出before do_while j的值
do {
j++;
}while (i>1);
System.out.println("after do_while j="+j);//输出after do while j的值
}
}
例3.13
package di3zhang;
public class li13 {
public static void main(String[] args) {
int i=0,j=0;
System.out.println("before while j="+j);//输出before while j的值
while(i>1){
j++;
}
System.out.println("after while j="+j);//输出after while j的值
}
}
3.3.4 for循环语句
例3.14
package di3zhang;
public class li14 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum = 0;
int i;
for (i = 1; i <= 100; i++) {//for循环语句
sum += i;
}
System.out.println("the result :" + sum);
}
}
3.3.5 foreach语句
例3.15
package di3zhang;
public class li15 {
public static void main(String[] args) {
int arr[] = { 7,10, 1 }; //声明一维数组
System.out.println("一维数组中的元素分别为:"); //输出信息
for (int x :arr){ //foreach语句,intx引用的变量arr指定要循环遍历的数组
//最后将x输出
System.out.println(x);
}
}
}
3.3.6 循环语句的嵌套
package di3zhang;
public class li16 {
public static void main(String[] args) {
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");//输出i,j的值
}
System.out.println();//换行
}
}
}
3.4 跳转语句
跳转语句包含两方面的内容,一方面是控制循环变量的变化方式,也就是让循环判断中的逻辑关系表达式变成false,从而达到终止循环的效果;一方面是控制循环的跳转。控制循环的跳转需要用到break和continue两个关键字,这两条跳转语句的跳转效果不同,break是中断循环,continuc是直接执行下一次循环。
例3.17
package di3zhang;
public class li17 {
public static void main(String[] args) {
for(int i=1;i<20;i++) {
if(i%2==0) {//如果i是偶数
System.out.println(i);//输出i的值
break;//跳到下一循环
}
}
System.out.println("---end---");
}
}
例3.18
package di3zhang;
public class li18 {
public static void main(String[] args) {
for (int i = 0; i < 3; i++) { //在for循环前用标签标记
for (int j = 0; j < 6; j++) {
if(j == 4) { //如果j等于4的时候就结束
break;
}
System.out.println("i=" + i + "j=" + j);// 输出i和j的值
}
}
}
}
例3.19
package di3zhang;
public class li19 {
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){//如果j等于4的时候就结束外层循环
break Loop;//跳出Loop标签标记的循环体
}
System.out.println("i="+i+"j="+ j);// 输出i和j的值
}
}
}
}
inue 语句
3.4.2 continue 语句
例3.20
package di3zhang;
public class li20 {
public static void main(String[] args) {
for (int i = 1; i< 20; i++) {
if (i % 2 != 0) { // 如果i不是偶数
continue; // 跳到下一循环
}
System.out.println(i); // 输出i的值
}
}
}