选择结构
1.switch:可以嵌套使用
定义变量名
switch(变量名){
case 值:
break;//可以不加
case 值2:
case 值3:
break;
default:
break;//最后一行,可以不加break;
}
注意:
变量名,只能是整型(int)或字符型或String类型(1.7版本才支持)或枚举
break可以不加,表示当前case代码段不会跳出switch而是继续往下一信case运行
2.if-else
if(条件表达式){//等同于三元运算符
//true
}else {
//false
}
if(条件表达式){
}else if(条件表达式){
}else {
}
可以嵌套使用
练习一
1.定义一个变量保存小明的成绩。
当成绩为100分时,奖励一辆BMW;
当成绩为(80,99]时,奖励一个台iphone7;
当成绩为[60,80]时,奖励一本参考书;
其它时,什么奖励也没有。
注意使用switch和if-else结构完成
示例代码
import javafx.scene.input.ScrollEvent;
public class 练习一 {
public static void main(String[] args) {
int score = 78;
if(score == 100){
System.out.println("奖励一辆BMW");
}else if(score > 80 && score <= 99){
System.out.println("奖励一个台iphone7");
}else if(score >= 60 && score <= 80){
System.out.println("奖励一本参考书");
}else {
System.out.println("什么奖励也没有");
}
}
}
switch与if-else区别
switch主要用于精确匹配,if-else适合范围匹配
switch执行效率比if-else要高很多
选择结构作业
3.编写程序:由键盘输入三个整数分别存入变量num1、num2、num3,对它们进行排序(使用 if-else if-else),并且从小到大输出。
4.对下列代码,若有输出,指出输出结果。
int x = 4;
int y = 1;
if (x > 2) {
if (y > 2)
System.out.println(x + y);
System.out.println(“haha");
} else
System.out.println("x is " + x);
5.
boolean b = true;
if(b == false) //如果写成if(b=false)能编译通过吗?如果能,结果是?
System.out.println("a");
else if(b)
System.out.println("b");
else if(!b)
System.out.println("c");
else
System.out.println("d”);
6.大家都知道,男大当婚,女大当嫁。那么女方家长要嫁女儿,当然要提出一定的条件:高:180cm以上;富:财富1千万以上;帅:是。
如果这三个条件同时满足,则:“我一定要嫁给他!!!”
如果三个条件有为真的情况,则:“嫁吧,比上不足,比下有余。”
如果三个条件都不满足,则:“不嫁!”
switch结构练习
1.使用 switch 把小写类型的 char型转为大写。只转换 a, b, c, d, e. 其它的输出 “other”。
2.由键盘输入学生成绩,对学生成绩大于60分的,输出“合格”。低于60分的,输出“不合格”。
3.由键盘输入月份,根据用于指定月份,打印该月份所属的季节。3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季
4. 编写程序:从键盘上输入2014年的“month”和“day”,要求通过程序输出输入的日期为2014年的第几天。
5.编写程序:从键盘上读入一个学生成绩,存放在变量score中,根据score的值输出其对应的成绩等级:
score>=90 等级:A
70=<score<90 等级: B
60=<score<70 等级: C
score<60 等级:D
6.从键盘分别输入年、月、日,判断这一天是当年的第几天
注:判断一年是否是闰年的标准:
1)可以被4整除,但不可被100整除
2)可以被400整除
获取键盘输入的内容
1.类名:java.util.Scanner
2.nextXXX():相关方法获取输入的内容
nextInt():返回整数
nextShort():
nextDouble():
next():读取到下一个空格
nextLine():读取整行
3.代码示例
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int score = sc.nextInt();
System.out.println(score);
String input = sc.next();
System.out.println(input);
}
}
循环结构
1.while循环
初始代码块
while(条件表达式){
循环体
迭代代码
}
2.for循环
for(初始代码块; 条件代码; 迭代代码){
循环体
}
for(int i = 0; i < 100; i++){
System.out.println(i);
}
3.do-while循环:无论如何会执行一次
初始代码块
do{
循环体
迭代代码
}while(条件表达式);//注意最后的分号
4.for-each循环(1.5版本)
变量:保存一个数据
数组或集合:保存多个同类型的数据
for(数据类型 变量名 : 数组或集合){
循环体
}
5.死循环:永远出不来循环。后面不能跟代码
示例
public class 练习二 {
public static void main(String[] args) {
int sum = 0;
do{
if(i % 2 == 1){
sum += i;
}
}while(i <= 100);
System.out.println("和为:" + sum);
}
}
循环练习
循环练习,所有练习都要使用for、while、do-while循环来做一遍
1.编写程序FooBizBaz.java,从1循环到150并在每行打印一个值,另外在每个3的倍数行上打印出“foo”,在每个5的倍数行上打印“biz”,在每个7的倍数行上打印输出“baz”。
2.打印1~100之间所有奇数的和(提示%表示取余数)
3.打印1~100之间所有是7的倍数的整数的个数及总和(体会设置计数器的思想)
4.输出所有的水仙花数,所谓水仙花数是指一个3
位数,其各个位上数字立方和等于其本身。
例如: 153 = 1*1*1 + 3*3*3 + 5*5*5
5.求1到100之间所有偶数的和。
6.从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为0时结束程序。
循环嵌套使用
7.打印九九乘法表(显示为梯形图)
8.1~100之间的所有质数打印出来
特殊流程控制语句
break;
中止循环,对于嵌套循环中止最近一个
continue;
中止当次循环,对于嵌套循环中止最近一个
return;
中止方法。后面不能直接跟代码
特殊流程控制语句练习
1.将1~10循环打印出来,到第5次时中断程序
2.将1~10循环打印出,到第5次时跳过
个人关于学习Java的一个建议
本文中,都是本人在**衡阳华信IT教育公司**上课的视频,视频中有很多练习,请同学们切勿眼高手低,觉得自己能在脑袋中想把题理清楚就不动手写代码。代码这一行,只有多练,没有多看。没有简单的题目只有更快的编程实现。学习编程的过程就如大家大篮球,打LOL或者Dota2游戏一样。菜鸟都是通过大量练习成为真正的高手,没有哪一个篮球高手是看书看出来的,也没有哪一个游戏职业选手是看别人玩游戏看出来的。当你在写程序时,也有手感时,说明你才是真正的入门。