Java(五)流程控制--分支语句与循环语句
一、分支语句
1、if分支语句
•if 概述:在某些情况下,需要当某一条件满足时才执行相应代码,条件不满足则执行其他代码。
•if 四种形式:单分支、双分支、多分支、嵌套if
---->单分支
---->双分支
练习:输出两个数中的最大数
双分支if语句可以通过三目运算来转换,但前提是双分支各语句中必须是一个表达式;
实例一:
public class Test{
public static void main(String[] args) {
int i=1;
if(i==1){
System.out.println("相等");
}else{
System.out.println("不相等");
}
}
}
//上面if双分支语句不能转换成如下三目运算:i==1?System.out.println("相等"):System.out.println("不相等");
实例二:
public class Test{
public static void main(String[] args) {
int i=1;
if(i==1){
i=i+1;
}else{
i=i+2;
}
System.out.println(i);
}
}
//上面if双分支语句可以转换成如下三目运算:int z = i==1?i+1:i+2;
实例三:
public class Test{
public static void main(String[] args) {
int i=1;
if(i==1){
int x=1;
i=i+x;
}else{
int y=2;
i=i+y;
}
System.out.println(i);
}
}
//上面if双分支语句不能转换成如下三目运算:int z = i==1?int x=1;i+x;:int y=2;i+y;
---->双分支多分支——多个语句块中只执行一个语句块:
public class Test{
public static void main(String[] args) {
int i=2;
if(i==1){//如果i的值为1,满足情况;否则不满足
int x=1;
i=i+x;
}else if(i>1){//如果i不等于1且i的值大于1,则满足情况
int y=2;
i=i+y;
}else{
int z=3;
i=i+z;
}
System.out.println(i);
}
}
---->嵌套if——一个分支结构中包含另一个完整分支结构:当有多个条件时分别判断多个条件可以提高程序可读性
public class Test{
public static void main(String[] args) {
int i=2;
if(i>1){
if(i==2){//需要同时满足i>1且i==2,才算满足条件
int x=1;
i=i+x;
}else{
int z=3;
i=i+z;
}
}else{
int y=2;
i=i+y;
}
System.out.println(i);
}
}
注意:if分支语句中去掉括号,则对第一行代码有效。else不能单独使用。
2、switch分支语句
---->switch分支语句语法:
public class Test {
public static void main(String[] args) {
int i=1;
switch(i){
case 1 :
System.out.println("代码1");
break;
case 2 :
System.out.println("代码2");
break;
default :
System.out.println("代码3");
}
System.out.println("代码4");
}
}
以上代码输出结果为:代码1
代码4
二、循环语句
------>while循环
------>do-while循环
注意:初始情况不满足循环条件时
•while循环一次都不会执行
•do-while循环不管任何情况都至少执行一次
------>for循环
public class Test {
public static void main(String[] args) {
for (int i = 0; i < 3; i++) {
if (i == 1) {
continue;//continue用于结束当前循环进入下次循环
//return;//return只结束其所在方法的运行
//break;
//break用于结束其所在当前循环语句块程序的运行,但不会影响其所在语句块外部代码的执行。
}
System.out.println("in code"+i);
}
System.out.println("out code");
}
}
以上是关于循环的部分知识,下面将附上我自己在课后的练习代码,如果有兴趣可以自己运行一下查看结果:
import java.util.Scanner;
public class PracticTwo{
public static void main(String args[]){
int i=5000;
System.out.println("请输入积分值:");
Scanner scanner = new Scanner(System.in);
int x = scanner.nextInt();
if(x<=0){
System.out.println("您还没有积分!");
}else if(x<5000){
System.out.println("国庆节快乐,送您一张贺卡!");
}else if(x>=5000 && x<10000){
System.out.println("国庆节快乐,送您一个杯子!");
}else if(x>=10000 && x<30000){
System.out.println("国庆节快乐,送您一套餐具!");
}else if(x>=30000){
System.out.println("国庆节快乐,送您一套精美骨质瓷器!");
}
}
}
class PracticTwo01{
public static void main(String args[]){
System.out.println("请输入i值:");
Scanner scanner = new Scanner(System.in);
int i= scanner.nextInt();
//byte i=2;
//int i=3;
//float i=2;
//long i =3;
//String i="1";//String JDK7之后的允许使用
switch(i){
//case "1":
case 1 :
System.out.println("11111111");
break;//跳出当前switch
//System.out.println("#####");
//在break或return之后的代码程序访问不到!!!!!
//case "2":
case 2 :
System.out.println("22222222");
break;
//case "3":
case 3 :
System.out.println("33333333");
break;
//return;//结束程序
default:
System.out.println("输出错误——Default!");
}
System.out.println("############没有return###############");
}
}
class PracticTwo02{
public static void main(String args[]){
int i=1;
int k=2;
switch(i){
case 1 :
System.out.println("i=1");
switch(k){
case 1 :
System.out.println("k=1");
//break;//break只会结束当前switch
//return;//结束当前方法
case 2 :
System.out.println("k=2");
//break;
case 3 :
System.out.println("k=3");
}
//break;
case 2 :
System.out.println("i=2");
break;
case 3 :
System.out.println("i=3");
default:
System.out.println("**********default!!!!");
}
}
}
class PracticTwo03{
static void show(){
System.out.println("show方法");
//System.exit(0);
return;//return只结束其所在方法的运行。
}
public static void main(String[] args) {
show();
//return;//在此位置放置return后之后的代码将不能被执行,会报错。
System.out.println("main方法");
//return;
}
}
class PracticTwo04{
public static void main(String args[]){
System.out.println("aaaaaaaaaaaaaaaaaaaa");
}
static{
System.out.println("ddddddddddddd");
}
//System.out.println("@@@@@@@@@@@@@");
static void Vao(){
System.out.println("ahahahahhahah");
}
}
class PracticTwo05{
//三角形
public static void main(String args[]){
int n=9,i;
for(i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print("*");
}
System.out.println(" i="+i);
}
System.out.println("i=" + i);
}
}
class PracticTwo06{
//菱形
public static void main(String args[]){
int n=9;
for(int i=1;i<=n;i++){
for(int j=0;j<=(n-i);j++){
System.out.print(" ");//输出空格
}
for(int k=1;k<=(2*i)-1;k++){
System.out.print("*");
}
System.out.println();
}
for(int i=n-1;i>=0;i--){
for(int j=0;j<=n-i;j++){
System.out.print(" ");
}
for(int k=1;k<=(2*i)-1;k++){
System.out.print("*");
}
System.out.println();
}
}
}
class PracticTwo07{
public static void main(String args[]){
int i=9;
for(;;){
System.out.println("############");
}//死循环,DOS界面中按住Ctrl+C停止死循环。
}
}
class PracticTwo08{
static void loop(){
int i=8;
for(int j=0;j<i;j++){
System.out.println("^^^^^^^^^^^^j="+j);
if(j==3){
break;
}
}
}
public static void main(String args[]){
int n=9;
int i=0,k;
k=n;
loop();
while(i<=n){
System.out.println("----------->"+i*2 +"\ti=" +i);
i++;
if(i==6){
//break;//结束当前循环
//return;
}
}
do{
if(k==2){
continue;//结束满足条件的当次循环进入下次循环
}
System.out.println("&&&&&&&&&&&&&&&&&&&\t"+ --k);
//k--;
if(k==5){
break;
//continue;//放在此处没有作用
}
}while(k>=0);
}
}
class PracticTwo09{
public static void main(String args[]){
int i=2;
if(i==3){
//break;
}
}
}
class PracticTwo10{
//输出从1到100之间的偶数
public static void main(String args[]){
for(int i=1;i<=100;i++){
if(i%2==1){
continue;
}
System.out.println("i="+i);
}
for(int i=2;i<=100;i=i+2){
System.out.println("i="+i);
}
}
}