Você está na página 1de 8

18/04/2012

1
M. Sc. Ing. Lucas Coaqui ra CanoM. Sc. Ing. Lucas
Coaqui ra Cano
1
CAP. 3 INSTRUCCIONES DE
CONTROL
M. Sc. Ing. Lucas Coaquira Cano 2
import java.util.Scanner;
public class Suma {
public static void main(String args[]){
float a, b, s, p;
Scanner ent = new Scanner(System.in);
System.out.println("Ingresa dos numeros: ");
a = ent.nextFloat();
b = ent.nextFloat();
s = a + b;
p = a * b;
System.out.println("La suma es: " + s);
System.out.println("El producto es: " + p);
}
}
Ingresa dos numeros:
12,5
3,6
La suma es: 16.1
El producto es: 45.0
3.1 ESTRUCTURA DE CONTROL SECUENCIAL
M. Sc. Ing. Lucas Coaquira Cano 3
//Archivo: Suma.java
import javax.swing.JOptionPane;
public class Suma {
public static void main(String args[]){
String sn1, sn2;
int n1, n2, s;

sn1 = JOptionPane.showInputDialog("Ingresa entero 1: ");
sn2 = JOptionPane.showInputDialog("Ingresa entero 2: ");

n1 = Integer.parseInt(sn1);
n2 = Integer.parseInt(sn2);

s = n1 + n2;

JOptionPane.showMessageDialog(null, "La suma es: " +s,
"Resultado", J OptionPane.PLAIN_MESSAGE);
System.exit(0);
}
}
M. Sc. Ing. Lucas Coaquira Cano 4
18/04/2012
2
M. Sc. Ing. Lucas Coaquira Cano 5
Como hacer cuadros de dilogo simples
//ttulo e icono por defecto

JOptionPane.showMessageDialog(null,"Texto del mensaje.");

//ttulo personalizado, icono de aviso

JOptionPane.showMessageDialog(null,
"Texto del mensaje.",
"Ttulo del marco",
JOptionPane.WARNING_MESSAGE);
M. Sc. Ing. Lucas Coaquira Cano 6
//ttulo personalizado, icono de error

JOptionPane.showMessageDialog(null,
"Texto del mensaje.",
"Ttulo del marco",
JOptionPane.ERROR_MESSAGE);

//ttulo personalizado, sin icono

JOptionPane.showMessageDialog(null,
"Texto del mensaje.",
"Ttulo del marco",
JOptionPane.PLAIN_MESSAGE);
M. Sc. Ing. Lucas Coaquira Cano 7
Constantes de JOptionPane para cuadros de dialogo de
mensaje
Cuadro de dialogo de mensajes Icono Descripcion
JOptionPane. ERROR_MESSAGE Muestra un cuadro de dialogo,
que indica un error al usuario
JOptionPane.
INFORMATION_MESSAGE
Muestra un cuaro de dialogo con
un mensaje informativo para el
usuario
JOptionPane.
WARNING_MESSAGE

Muestra un cuadro de dialogo
que advierte al usuario de un
problema potencial
JOptionPane.
QUESTION_MESSAGE

Muestra un cuadro de dialogo
con un signo de interrogacion
para el usuario.
JOptionPane. PLAIN_MESSAGE

Muestra un cuadro de dialogo
que simplemente contiene un
mensaje
M. Sc. Ing. Lucas Coaquira Cano 8
3.2 ESTRUCTURAS DE CONTROL SELECTIVAS
C++ ofrece las sentencias if y switch para soportar la toma de decisiones.
3.10.1 Sentencia if
La construccin if tiene tres formatos:
if(expresion) {
sentencias; //bloque if
}
if(expresion) {
sentencias1;
}
else {
sentencias2;
}
if(expresion1) {
sentencias1;
}
else if(expresion2) {
sentencias2;
}
else {
sentencias3;
}
18/04/2012
3
M. Sc. Ing. Lucas Coaquira Cano 9
//Programa: Oper.java
import javax.swing.JOptionPane;
public class Oper {
public static void main(String args[]){
int resp;
resp = Integer.parseInt(JOptionPane.showInputDialog("Cual es el resultado
de (1+2*3-4)?"));
if (resp == 3)
JOptionPane.showMessageDialog(null,"Todo bien, todo bien!...");
else
JOptionPane.showMessageDialog(null,"Ojo! usted tiene deudas con
Pitgoras...");
}
}
M. Sc. Ing. Lucas Coaquira Cano 10
//Programa: Oper.java
import javax.swing.JOptionPane;

public class Oper {
public static void main(String args[]){
int nota;
nota = Integer.parseInt(JOptionPane.showInputDialog("Ingrese Nota"));
if (nota > 10)
JOptionPane.showMessageDialog(null,"Aprobado!...");
else
JOptionPane.showMessageDialog(null,"Desaprobado...");
}
}
M. Sc. Ing. Lucas Coaquira Cano 11
Es una sentencia condicional con mltiples caminos que generaliza la
sentencia if-else. Permite comparar el valor de una expresin de tipo
carcter con un conjunto de caracteres de tipos similares. El formato
switch es:
switch(expresion) {
case constante1: sentencias; break;
case constante2: sentencias; break;

defaulf: sentencias; break;
}
3.10.2 La sentencia switch
M. Sc. Ing. Lucas Coaquira Cano 12
//archivo: Operaciones.java
import javax.swing.JOptionPane;
public class Operaciones {
public static void main(String args[]){
String sMensaje;
int op, n1, n2, res;

n1 = Integer.parseInt(JOptionPane.showInputDialog("Ingresa primer
numero: "));

n2 = Integer.parseInt(JOptionPane.showInputDialog("Ingresa segundo
numero: "));

sMensaje = MENU de opciones\n + "1. Sumar\n" + "2. Restar\n" +
"Ingresa opcion\n";
op = Integer.parseInt(JOptionPane.showInputDialog(sMensaje));
18/04/2012
4
M. Sc. Ing. Lucas Coaquira Cano 13
switch(op){
case 1: res = n1 + n2;
JOptionPane.showMessageDialog(null, "La suma es: " +res); break;
case 2: res = n1 - n2;
JOptionPane.showMessageDialog(null, "La resta es: " +res); break;
default: JOptionPane.showMessageDialog(null, "Error"); break;

}
System.exit(0);
}
}
M. Sc. Ing. Lucas Coaquira Cano 14
3.11 BUCLES
3.11.1 La sentencia while
Funciona de modo similar que en otros lenguajes de programacin, tales
como C y Pascal. El formato de una construccin while es:
Las sentencias se ejecutan si expresin se evala a verdadero (cierto).
El programa evala expresin cada vez al principio del bloque; no se
ejecutan sentencias si expresin se evala a falso cuando se ejecuta el
bloque la primera vez.
while(expresion) {
sentencias;
}
M. Sc. Ing. Lucas Coaquira Cano 15
import javax.swing.JOptionPane;
public class Mientras1 {
public static void main(String args[]){
int n, i;
String salida = "";
i = 0;
n = 5;

while(i < n){
salida += i + "\n";
i++;
}
JOptionPane.showMessageDialog( null, salida,"Numeros",
J OptionPane.INFORMATION_MESSAGE );
System.exit(0);
}
}
//Bucle mientras controlado por contador
M. Sc. Ing. Lucas Coaquira Cano 16
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
public class Mientras1 {
public static void main(String args[]){
int n, i;
i = 0;
n = 5;
JTextArea textoSal = new JTextArea();

while(i < n){
textoSal.append(String.valueOf(i)+ "\n");
i++;
}
JOptionPane.showMessageDialog( null, textoSal,"Numeros",
J OptionPane.INFORMATION_MESSAGE );
System.exit(0);
}
}
//Bucle while controlado por contador
18/04/2012
5
M. Sc. Ing. Lucas Coaquira Cano 17
//Bucle while controlado por centinela
import javax.swing.JOptionPane;
public class Promedio1 {
public static void main(String args[]) {

int total, cont, nota, promedio;
String sCalif;
total = 0;
cont = 0;
sCalif = JOptionPane.showInputDialog(
"Escriba la calificacion como un entero: " );
nota = Integer.parseInt( sCalif );

while( nota != -1 ){
total = total + nota;
cont = cont + 1;
sCalif = JOptionPane.showInputDialog(
"Escriba la calificacion como un entero: " );
nota = Integer.parseInt( sCalif );
}
M. Sc. Ing. Lucas Coaquira Cano 18
promedio = total / cont;
JOptionPane.showMessageDialog( null,
"El promedio de la clase es " +promedio,
"Promedio de la clase", JOptionPane.INFORMATION_MESSAGE );
System.exit(0);
}
}

M. Sc. Ing. Lucas Coaquira Cano 19
3.11.2 La sentencia do while
Se considera una variante de la sentencia while. En lugar de hacer la
comparacin en la parte superior del bucle, se hace la misma al final del
bucle. Esto significa que las sentencias en el bloque encerrado entre do y
while se ejecutan al menos una vez, mientras que en el caso de while
puede no ejecutarse ninguna sentencia del bloque si la condicin inicial
es falsa. Su formato general es:
do {
sentencias;
}while(expresion);
M. Sc. Ing. Lucas Coaquira Cano 20
import java.awt.Graphics;
import javax.swing.JApplet;

public class HacerMien extends JApplet{
public void paint(Graphics g)
{
super.paint(g);

int cont = 1;
do{
g.drawOval(110 - cont * 10, 110 - cont *10, cont * 20, cont * 20);
++cont;
}while(cont <= 10);
}
}
18/04/2012
6
M. Sc. Ing. Lucas Coaquira Cano 21 M. Sc. Ing. Lucas Coaquira Cano 22
Los applet o apliques son pequeas aplicaciones escritas en Java que
permiten obtener una gran variedad de efectos en las pginas web.
M. Sc. Ing. Lucas Coaquira Cano 23
3.11.3 La sentencia for
Utiliza una variable de control del bloque para gestionar la iteracin del
bucle. El bucle contiene tres partes: la inicializacin, la prueba de
continuacin del bucle y el incremento / decremento. El formato de for es:
for (expresion1; expresion2; expresion 3)
{
sentencias;
}
La parte de inicializacin (expresion1) se evala una vez. Si la parte de
prueba o comparacin (expresion2) se evala a verdadero, se ejecutan
las sentencias, en caso contrario se sale del bucle. Se evala
(expresion3) y el control pasa de nuevo al comienzo del bucle for. La
iteracin continua hasta que condicin (expresion2) sea falsa, en cuyo
momento, el control pasa a la siguiente sentencia fuera del bucle.
suma=0;
for(i=1; i <= 10; i++)
suma = suma+i;
M. Sc. Ing. Lucas Coaquira Cano 24
for(int cont = 1; cont <= 10; cont++)
Palabra
clave
Variable
control
Separador
de punto y
coma
requerido
Separador
de punto y
coma
requerido
Valor inicial
de la variable
control
Condicin de
continuacin
del ciclo
Incremento de
la variable de
control
Formato general:
for(inicializacion; condiconDeContinuacionDeCiclo; incremento)
instruccion
18/04/2012
7
M. Sc. Ing. Lucas Coaquira Cano 25
import java.awt.Graphics;

import javax.swing.JApplet;

public class ContadorFor extends JApplet {
public void paint( Graphics g )
{
super.paint(g);
for( int contador = 1; contador <= 10; contador++ )
g.drawLine( 10, 10, 250, contador * 10 );
}
}
AWT = Abstract Windows Toolkits
API = Interfaz de Programacion de Aplicaciones
GUI = Interfaz Grafica de Usuario
M. Sc. Ing. Lucas Coaquira Cano 26
M. Sc. Ing. Lucas Coaquira Cano 27
import javax.swing.JOptionPane;
import javax.swing.JTextArea;

public class Desde {
public static void main(String args[]){
int n, i;
n = 5;
JTextArea textoSal = new JTextArea();

for(i = 0; i < n; i++)
textoSal.append(String.valueOf(i)+ "\n");

JOptionPane.showMessageDialog( null, textoSal,"Numeros",
J OptionPane.INFORMATION_MESSAGE );
System.exit(0);
}
}
M. Sc. Ing. Lucas Coaquira Cano 28
3.11.4 Las sentencias break y continue
En algunas ocasiones se necesita interrumpir el flujo normal de control
dentro de un bucle. Java proporciona las sentencias break y continue en
el interior del bucle para ese propsito.
break termina el flujo de control prematuramente y continue hace que la
siguiente iteracin del bucle se ejecute inmediatamente.
for(i = 0; i < 10; i++) {
cin >> x;
if(x < 0.0) {
cout << Terminado << endl;
break; //salida del bucle si valor es negativo
}
cout << sqrt(x) << endl;
}
//break bifurca a esta sentencia
18/04/2012
8
M. Sc. Ing. Lucas Coaquira Cano 29
import javax.swing.JOptionPane;
public class Salto {
public static void main(String args[]){
String salida = "";
int cuenta;
for(cuenta = 1; cuenta <= 10; cuenta++){
if(cuenta == 5)
break;
salida += cuenta + " ";
}
salida += "\nSe salio del ciclo en cuenta = " + cuenta;
JOptionPane.showMessageDialog(null, salida);
System.exit(0);
}
}
M. Sc. Ing. Lucas Coaquira Cano 30
import javax.swing.JOptionPane;
public class Salto {
public static void main(String args[]){
String salida = "";
int cuenta;
for(cuenta = 1; cuenta <= 10; cuenta++){
if(cuenta == 5)
continue;
salida += cuenta + " ";
}
salida += "\nSe utilizo continue para evitar imprimir 5 ";
JOptionPane.showMessageDialog(null, salida);
System.exit(0);
}
}

Você também pode gostar