2.顺序结构
- 任何结构都包含顺序结构
3.选择结构
- if单选择结构
- if双选择结构
- if多选择结构
package com.Macong.struct;
import java.util.Scanner;
public class Select03 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//if多选择结构
System.out.println("请输入分数:");
//判断有无输入
//如果不是数字或者不是整数,程序结束
while (scanner.hasNextInt())
{
int score = scanner.nextInt();
if(score==100)
{
System.out.println("恭喜100分");
}else if(score<100&&score>=90)
{
System.out.println("优秀");
}
else if(score>=80&&score<=90)
{
System.out.println("良好");
}
else if(score>=70&&score<80){
System.out.println("中等");
}
else if(score>=60&&score<70)
{
System.out.println("及格");
}
else if(score>=0&&score<60){
System.out.println("不及格");
}
else
{
System.out.println("输入错误。请输入0到100之间的数");
}
}
System.out.println("程序结束感谢使用");
scanner.close();
}
}
-
switch多选择
-
字节码文件
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package com.Macong.struct;
public class SwitchDemo02 {
public SwitchDemo02() {
}
public static void main(String[] args) {
String name = "小马";
byte var3 = -1;
switch(name.hashCode()) {
case 23567:
if (name.equals("小")) {
var3 = 1;
}
break;
case 770109:
if (name.equals("小马")) {
var3 = 0;
}
}
switch(var3) {
case 0:
System.out.println("小马");
break;
case 1:
System.out.println("小");
break;
default:
System.out.println("wrong");
}
}
}
package com.Macong.struct;
public class SwitchDemo02 {
public static void main(String[] args) {
//JDK7的新特性,表达式可以是字符串;
//字符的本质还是数字;
//反编译 java---class (字节码文件) ----反编译
String name = "小马";
switch(name)
{
case "小马" :
System.out.println("小马");
break;
case "小" :
System.out.println("小");
break;
default :
System.out.println("wrong");
}
}
}
4.循环结构
- while
- do – while
- for 循环
package com.Macong.struct;
public class WhileDemo02 {
public static void main(String[] args) {
//计算1+2+3+4.....+100
int i = 0;
int sum = 0;
while (i >= 0 && i < 100) {
i++;
//累加器
sum = sum + i;
}
System.out.println("1+2+3....100=" + sum);
}
}
1+2+3…100=5050
do while
public static void main(String[] args) {
//计算1+2+3+4.....+100
int i = 0;
int sum = 0;
do {
i++;
//累加器
sum = sum + i;
} while (i < 100);
System.out.println("1+2+3....100=" + sum);
}
for循环,最重要
- for 循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构
- for 循环次数。在循环执行前就确定了
测试一:
public static void main(String[] args) {
//for循环解决1+2+3+.....+100
int i ;
int sum = 0;
for(i=1;i<=100;i++)
{
sum = sum + i;
}
System.out.println(sum);
}
测试二:计算0到100之间的奇数和偶数的和
package com.Macong.struct;
public class ForDemo02 {
public static void main(String[] args) {
//计算0到100之间的奇数和,偶数和
int i;
int sum1=0;//放偶数的和
int sum2=0;//放奇数的和
for(i=1;i<=100;i++)
{
if(i%2==0)
{
sum1 = sum1 + i;
}
else {
sum2 = sum2 + i;
}
}
System.out.println("1到100偶数的和:" + sum1);
System.out.println("1到100奇数的和:" + sum2);
}
}
1到100偶数的和:2550
1到100奇数的和:2500
4.1、用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个
int i = 0;//上海
int j = 0;//引入一个j来控制行数
for (i=1;i<=1000;i++)
{
if(i%5==0) {
System.out.print(" " + i);
j++;
if (j % 3 == 0)
{
System.out.println();
}
解法2:
/*
//用while或者for循环输出1-1000之间能被5整除的数,并且每行输出3个
思想:1、用for(),变量i遍历1-1000的数,i%5==0,判断是否是5的倍数。
2、每行输出3个,用变量j记录输出的个数,来控制换行。
3、在每行前面输出行号。
- 先输出行号
- 再输出满足条件的数字
- 输完数字以后j++,
*/
int j = 0;//控制换行
//为了减少计算,i+=5;
for (int i = 0; i <= 1000; i+=5) {
if (j % 3 == 0) {
System.out.print(" 第" + ((j / 3)+1) + "行: " );
}
if (i % 5 == 0) {
System.out.print(" " + i);
j++;
if(j % 3 == 0)
{
System.out.println();
}
}
}
解法3
for (int i = 0; i <= 1000; i++) {
//i分为两种情况,i=0,i!=0;
//if (i % 3*5 == 0)这是错误的%的优先级和*相同,先计算i%3
//控制行的模块
if (i % 15 == 0) {
if (((i % 15) == 0) && (i != 0)) {
System.out.println();
}
System.out.print(" 第" + ((i / 15) + 1) + "行: ");
}
//符合输出模块
if (i % 5 == 0) {
System.out.print(" " + i);
}
}
结果
4.2、打印九九乘法表
public static void main(String[] args) {
int i ;//控制列
int j ;//控制行
/*解题思路:把大问题拆分成一个个小问题,逐个解决。写代码不是重点,解决问题才是。
1.我们先打印第一行。把第一行固定为1
2.我们在每一行进行输出,寻找列i与行j的关系表达式
3.每行结束,我们要进行换行
4.调整样式,每列用制表符
*/
//先控制行,控制行后,列与行的关系。每行结束加一个换行语句。
for (j=1;j<=9;j++) {
for (i = 1; i <= j; i++) {
System.out.print(i+ "x" + j + "=" + j * i + " ");
}
System.out.println();
}
}
int numbers[] = new int[]{1,2,3,4};//定义一个数组
//int[] numbers ={1,2,3,4}//定义一个数组
for(int i:numbers)
{
System.out.println(i);
}