3.1 程序结构
结构化程序设计分为:顺序结构、选择结构和循环结构,是各种复杂程序的基本构造单元。
3.2 条件语句
3.2.1 if 条件语句
1.简单的if语句
if (布尔表达式){
语句
}
- 布尔表达式:最后返回结果必须是一个布尔值,它可以是一个单纯的布尔变量或常量也可以是表达式。
- 语句:当语句序列中只有一条语句时可以省略{}
例3.1
public class 三1 {
public static void main (String args []) {
if (true)//让判断条件永远为真
System.out.println("我没有使用大括号");//没有大括号,直接跟在if语句之后
if (true){//让判断条件永远为真
System.out.println("我使用了大括号");}//输出语句在大括号内
}
}
例3.2
import java.util.Scanner;
public class 三2 {
public static void main (String args[]) {
Scanner in =new Scanner (System.in);//创建Scanner对象,用于进行输入
System.out.println("请输入要拨打的电话号码:");//输出对用户的提示
int phoneNumber = in.nextInt();//创建变量,保存电话号码
if (phoneNumber != 84972266)//判断此电话是否是84972266
System.out.println("对不起,您拨打的电话不存在!");//如果不是84972266号码,则提示号码不存在
}
}
Scanner类:可以解析基本数据类型和字符串的文本扫描器
nextInt()方法用来扫描一个值并返回int类型。
2.if...else语句
if (布尔表达式){
语句1;
}else {
语句2;
}
例3.3
public class 三3 {
public static void main(String[] args) {
int math = 95; //声明int型变量,并赋初值95
int english = 56; //声明int型变量,并赋初值56
if (math > 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多分支语句
if (表达式1){
语句1
}
else if (表达式2){
语句2
}
...
else if(表达式n){
语句n
}
例3.4
public class 三4 {
public static void main (String args []) {//主方法
int x = 20; //声明int型局部变量
if (x > 30) { //判断变量x是否大于30
System.out.println("a的值大于30");//条件成立的输出信息
}else if (x > 10) {//判断变量x是否大于10
System.out.println("a的值大于10");//条件成立的输出信息
}else if (x > 0) {//判断变量x是否大于0
System.out.println("a的值大于0,但小于10");//条件成立的输出信息
}else {//当以上条件都不成立时,执行的语句块
System.out.println("a的值小于10");//输出信息
}
}
}
4. if 语句的嵌套
例3.5
import java.util.Scanner;
public class 三5 {
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 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 三6 {
public static void mian (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"); //不是闰年
}
}
3.2.2 switch多分支结构
例3.7
public class 三7 {
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
import java.util.Scanner;
public class 三8 {
public static void main (String args []) {
Scanner sc = new Scanner(System.in);
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
public class 三9 {
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循环语句
3.3.1while循环语句
例3.10
public class 三10 {
public static void main (String args []) {
int x = 1; //定义int型变量x,并赋初值1
int sum = 0; //定义变量用于储存相加后的结果
while (x <= 10) { //循环结束条件
sum = sum + x; //循环体语句
x++; //同上
}
System.out.println("sum="+ sum); //输出sum
}
}
例3.11
public class 三11 {
public static void main (String ags []) {
int a = 100;//声明变量a并赋初值100
while (a == 60)//while循环条件
{
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 三12 {
public static void main (String args []) {
int i = 0,j = 0;//声明变量i用于判断循环条件,声明变量j
System.out.println("before do_while j="+ j);//输出循环前的j的值
do {//do_while循环
j++;//循环体语句
}
while (i > 1);//指定循环结束条件
System.out.println("after do_while j="+ j);//输出循环后的j的值
}
}
例3.13
public class 三13 {
public static void main (String args []) {
int i = 0,j = 0;//声明int型变量i和j并赋值为0
System.out.println("before while j="+ j);//输出循环前的j的值
while (i>1) {//while循环
j ++;//循环体语句
}
System.out.println("after while j="+ j);//输出循环后的结果
}
}
例3.14
public class 三14 {
public static void main (String args []) {
int sum = 0;//声明int型变量sum储存连加值
int i;//声明int型变量i
for (i = 1;i <= 100;i ++) {//for循环
sum += i;//循环体语句
}
System.out.println("the result :"+ sum);//输出循环后的结果
}
}
例3.15
public class 三15 { //创建类Repetition
public static void main (String args []) { //主方法
int arr [] = { 7,10,1}; //声明一堆数组
System.out.println("一堆数组中的元素分别为:");//输出信息
for (int x : arr) {//foreach语句,int x引用的变量,arr指定要循环遍历的数组,最后将x输出
System.out.println(x);
}
}
}
例3.16
public class 三16 {
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");
}
System.out.println();//换行
}
}
}
例3.17
public class 三17 {
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
public class 三18 {
public static void main (String args []) {
for (int i = 1; i < 20; i++) {
if(i % 2 != 0) {//如果i不是偶数
continue;//跳到下一循环
}
System.out.println(i);//输出i的值
}
}
}
例3.19
public class 三19 {
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);
}
}
}
}
例3.20
public class 三20 {
public static void main (String args []) {
for ( int i = 1 ; i < 20; i++) {//定义i,执行语句
if (i%2 != 0) {//如果i不是偶数
continue;//跳到下一循环
}
System.out.println(i);//输出i的值
}
}
}