¿Todo el software es solo una combinación de ifs y elses?

Bueno, las respuestas dadas a continuación explican brillantemente cómo el software no es más que un conjunto de lógica diferente. Así que solo te daré un ejemplo. Recientemente completé mi curso de Java de un instituto. Allí, como tarea final, tuve que presentar un proyecto, una calculadora simple. Ahora, esa fue realmente una tarea aburrida. Me refiero a común en serio? Quería hacer algo más. Ahora ese instituto tenía un software que administraba la información de sus estudiantes, como el número de admisión de un estudiante, nombre, curso, tarifas, saldo, etc. Así que tomé su permiso y simplemente creé una réplica exacta de ese software que consistía en siete clases diferentes para siete diferentes marcos (Windows). Ahora el total consistía en alrededor de 3000 líneas y confía en mí. No necesitaba un solo If-Else o un bucle en todo el programa. Como prueba, proporciono el código completo de una de esas 7 clases. Entonces, lo que quiero decir es que nada en la programación es seguro. No podemos genrelizar algo y decir que siempre usaremos XYZ (aunque puede haber algunas excepciones). Solo depende de nuestra necesidad.
Espero eso ayude…

paquete shashank.project;

import javax.swing. *;
import java.sql.Connection;
importar java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

/ **
* *
* @autor Shashank
* /
AddStudent de clase pública extiende JFrame {

Conexión pública estática conn = null;
Declaración estática pública stmt = null;
ResultSet público estático rs = nulo;
Cadena estática JDBC_Driver = “com.mysql.jdbc.Driver”;
Cadena estática DB_URL = “jdbc: mysql: // localhost: 3306 / Shashank”;
usuario de cadena estática = “root”;
Pase de cadena estático = “0000”;
Cadena estática SQL = “”;
static int admn = 0;

AddStudent público () {
initComponents ();
initConnection ();
tratar {
stmt = conn.createStatement ();

// Las siguientes 6 líneas obtienen el último valor de admin no para actualizar el valor
// para la siguiente entrada automáticamente
SQL = “SELECCIONAR Admn_No de Stud_Details ORDENAR POR Admn_No DESC LIMIT 1;”;
rs = stmt.executeQuery (SQL);
while (rs.next ()) {
admn = rs.getInt (“admn_no”);
}
} catch (SQLException ex) {
Logger.getLogger (AddStudent.class.getName ()). Log (Level.SEVERE, null, ex);
}
LAdmnNo.setText (String.valueOf (++ admn));
}

void initConnection ()
{
tratar {
System.out.println (“Registrando …”);
Class.forName (JDBC_Driver);
System.out.println (“¡El registro se realizó correctamente!”);
} catch (ClassNotFoundException ex) {
JOptionPane.showMessageDialog (nulo, “Problema de registro !!!”, “Error”, JOptionPane.ERROR_MESSAGE);
}
tratar {
System.out.println (“Conectando …”);
conn = DriverManager.getConnection (DB_URL, usuario, pase);
System.out.println (“¡Conexión exitosa!”);

} catch (SQLException ex) {
JOptionPane.showMessageDialog (nulo, “Problema de conexión !!!”, “Error”, JOptionPane.ERROR_MESSAGE);
}
}

/ **
* Este método se llama desde el constructor para inicializar el formulario.
* ADVERTENCIA: NO modifique este código. El contenido de este método es siempre
* regenerado por el Editor de formularios.
* /
@SuppressWarnings (“sin marcar”)
//
privado vacío initComponents () {

jTextField3 = new javax.swing.JTextField ();
jSpinner1 = new javax.swing.JSpinner ();
jLabel1 = new javax.swing.JLabel ();
jLabel2 = new javax.swing.JLabel ();
jLabel3 = new javax.swing.JLabel ();
jLabel4 = new javax.swing.JLabel ();
jLabel5 = new javax.swing.JLabel ();
jButton1 = new javax.swing.JButton ();
tname = new javax.swing.JTextField ();
tCname = new javax.swing.JTextField ();
tfees = new javax.swing.JTextField ();
ComboDate = new javax.swing.JComboBox ();
ComboMonth = new javax.swing.JComboBox ();
ComboYear = new javax.swing.JComboBox ();
jLabel6 = new javax.swing.JLabel ();
LAdmnNo = new javax.swing.JLabel ();
Balance = new javax.swing.JLabel ();
EMI = nuevo javax.swing.JLabel ();
TxtBal = new javax.swing.JTextField ();
ComboDate2 = new javax.swing.JComboBox ();
ComboMonth2 = new javax.swing.JComboBox ();
ComboYear2 = new javax.swing.JComboBox ();

jTextField3.setText (“jTextField3”);

setDefaultCloseOperation (javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

jLabel1.setFont (nuevo java.awt.Font (“Comic Sans MS”, 1, 18)); // NOI18N
jLabel1.setText (“Nuevos estudiantes”);

jLabel2.setFont (nuevo java.awt.Font (“Comic Sans MS”, 1, 12)); // NOI18N
jLabel2.setText (“Nombre”);

jLabel3.setFont (nuevo java.awt.Font (“Comic Sans MS”, 1, 12)); // NOI18N
jLabel3.setText (“Nombre del curso”);

jLabel4.setFont (nuevo java.awt.Font (“Comic Sans MS”, 1, 12)); // NOI18N
jLabel4.setText (“Fecha de incorporación”);

jLabel5.setFont (nuevo java.awt.Font (“Comic Sans MS”, 1, 12)); // NOI18N
jLabel5.setText (“Tarifas totales”);

jButton1.setText (“Enviar”);
jButton1.addActionListener (new java.awt.event.ActionListener () {
public void actionPerformed (java.awt.event.ActionEvent evt) {
jButton1ActionPerformed (evt);
}
});

tfees.addActionListener (new java.awt.event.ActionListener () {
public void actionPerformed (java.awt.event.ActionEvent evt) {
tfeesActionPerformed (evt);
}
});

ComboDate.setModel (new javax.swing.DefaultComboBoxModel (new String [] {“Day”, “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8 “,” 9 “,” 10 “,” 11 “,” 12 “,” 13 “,” 14 “,” 15 “,” 16 “,” 17 “,” 18 “,” 19 “,” 20 “, “21”, “22”, “23”, “24”, “25”, “26”, “27”, “28”, “29”, “30”, “31”}));
ComboDate.addActionListener (new java.awt.event.ActionListener () {
public void actionPerformed (java.awt.event.ActionEvent evt) {
ComboDateActionPerformed (evt);
}
});

ComboMonth.setModel (new javax.swing.DefaultComboBoxModel (new String [] {“Month”, “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8 “,” 9 “,” 10 “,” 11 “,” 12 “}));

ComboYear.setModel (new javax.swing.DefaultComboBoxModel (new String [] {“Year”, “2010”, “2011”, “2012”, “2013”, “2014”, “2015”, “2016”, “2017 “,” 2018 “,” 2019 “,” 2020 “,” 2021 “,” 2022 “,” 2020 “,” 2021 “,” 2022 “,” 2023 “,” 2024 “,” 2025 “,” 2026 “, “2027”, “2028”, “2029”, “2030”}));

jLabel6.setFont (nuevo java.awt.Font (“Comic Sans MS”, 1, 14)); // NOI18N
jLabel6.setText (“Admisión No:”);

LAdmnNo.setFont (nuevo java.awt.Font (“Comic Sans MS”, 0, 14)); // NOI18N

Balance.setFont (nuevo java.awt.Font (“Comic Sans MS”, 1, 12)); // NOI18N
Balance.setText (“Balance”);

EMI.setFont (nuevo java.awt.Font (“Comic Sans MS”, 1, 12)); // NOI18N
EMI.setText (“Fecha EMI”);

ComboDate2.setModel (new javax.swing.DefaultComboBoxModel (new String [] {“Day”, “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8 “,” 9 “,” 10 “,” 11 “,” 12 “,” 13 “,” 14 “,” 15 “,” 16 “,” 17 “,” 18 “,” 19 “,” 20 “, “21”, “22”, “23”, “24”, “25”, “26”, “27”, “28”, “29”, “30”, “31”}));

ComboMonth2.setModel (new javax.swing.DefaultComboBoxModel (new String [] {“Month”, “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8 “,” 9 “,” 10 “,” 11 “,” 12 “}));

ComboYear2.setModel (new javax.swing.DefaultComboBoxModel (new String [] {“Year”, “2010”, “2011”, “2012”, “2013”, “2014”, “2015”, “2016”, “2017 “,” 2018 “,” 2019 “,” 2020 “,” 2021 “,” 2022 “,” 2020 “,” 2021 “,” 2022 “,” 2023 “,” 2024 “,” 2025 “,” 2026 “, “2027”, “2028”, “2029”, “2030”}));

javax.swing.GroupLayout layout = new javax.swing.GroupLayout (getContentPane ());
getContentPane (). setLayout (layout);
layout.setHorizontalGroup (
layout.createParallelGroup (javax.swing.GroupLayout.Alignment.LEADING)
.addGroup (layout.createSequentialGroup ()
.addGroup (layout.createParallelGroup (javax.swing.GroupLayout.Alignment.LEADING)
.addGroup (layout.createSequentialGroup ()
.addContainerGap ()
.addComponent (jLabel1))
.addGroup (layout.createSequentialGroup ()
.addGap (70, 70, 70)
.addGroup (layout.createParallelGroup (javax.swing.GroupLayout.Alignment.LEADING)
.addGroup (layout.createSequentialGroup ()
.addGroup (layout.createParallelGroup (javax.swing.GroupLayout.Alignment.LEADING)
.addComponent (jLabel3)
.addComponent (jLabel2))
.addGap (8, 8, 8)
.addGroup (layout.createParallelGroup (javax.swing.GroupLayout.Alignment.LEADING)
.addComponent (tname)
.addComponent (tCname)))
.addGroup (layout.createSequentialGroup ()
.addComponent (jLabel4)
.addPreferredGap (javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent (ComboDate, 0, 57, Short.MAX_VALUE)
.addGap (18, 18, 18)
.addComponent (ComboMonth, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap (javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent (ComboYear, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup (layout.createSequentialGroup ()
.addGroup (layout.createParallelGroup (javax.swing.GroupLayout.Alignment.LEADING)
.addComponent (jLabel5)
.addComponent (Balance)
.addComponent (EMI))
.addGap (22, 22, 22)
.addGroup (layout.createParallelGroup (javax.swing.GroupLayout.Alignment.LEADING)
.addComponent (TxtBal)
.addComponent (tfees)
.addGroup (layout.createSequentialGroup ()
.addComponent (ComboDate2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap (javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent (ComboMonth2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap (18, 18, 18)
.addComponent (ComboYear2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addGroup (javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup ()
.addGap (0, 0, Short.MAX_VALUE)
.addComponent (jButton1))
.addGroup (javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup ()
.addComponent (jLabel6)
.addPreferredGap (javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent (LAdmnNo, javax.swing.GroupLayout.PREFERRED_SIZE, 36, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap (0, 0, Short.MAX_VALUE)))))
.addGap (70, 70, 70))
);
layout.setVerticalGroup (
layout.createParallelGroup (javax.swing.GroupLayout.Alignment.LEADING)
.addGroup (layout.createSequentialGroup ()
.addContainerGap ()
.addComponent (jLabel1)
.addGap (23, 23, 23)
.addGroup (layout.createParallelGroup (javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent (LAdmnNo, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent (jLabel6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap (javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup (layout.createParallelGroup (javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent (tname, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent (jLabel2))
.addPreferredGap (javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup (layout.createParallelGroup (javax.swing.GroupLayout.Alignment.LEADING)
.addComponent (tCname, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent (jLabel3))
.addPreferredGap (javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup (layout.createParallelGroup (javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent (jLabel4)
.addComponent (ComboDate, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent (ComboMonth, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent (ComboYear, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap (javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup (layout.createParallelGroup (javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent (jLabel5)
.addComponent (tfees, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap (javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup (layout.createParallelGroup (javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent (Balance)
.addComponent (TxtBal, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap (javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup (layout.createParallelGroup (javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent (EMI)
.addComponent (ComboDate2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent (ComboMonth2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent (ComboYear2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap (18, 18, 18)
.addComponent (jButton1)
.addContainerGap (16, Short.MAX_VALUE))
);

paquete();
} //

private void jButton1ActionPerformed (java.awt.event.ActionEvent evt) {
tratar {

// Las siguientes 6 variables de cadena obtienen el texto ingresado en el marco de agregar estudiante
Nombre de cadena = tname.getText ();
Curso de cadena = tCname.getText ();
Fecha de cadena = (Cadena) ComboDate.getSelectedItem ();
Cadena mes = (Cadena) ComboMonth.getSelectedItem ();
String year = (String) ComboYear.getSelectedItem ();
Tarifas de cadena = tfees.getText ();
int bal = Integer.parseInt (TxtBal.getText ());

// Las siguientes líneas agregan una nueva fila a la JTable
Modelo DefaultTableModel;
modelo = (DefaultTableModel) MainActivity.MainTable.getModel ();
model.addRow (nuevo objeto [] {“”, “”, “”, “”, “”, “”});

// El valor de SQL se usa para agregar una nueva entrada en la tabla;
stmt = conn.createStatement ();
SQL = “INSERTAR EN Stud_Details VALUES (” +
(admn) + “,” + “\” “+ nombre +” \ “” + “,” + “\” “+ curso +” \ “” + “,” +
“\” “+ fecha +” – “+ mes +” – “+ año +” \ “” + “,” + tarifas + “,” + bal + “)”;
System.out.println (SQL);
// Esta declaración actualiza la tabla llamada stud_details
stmt.executeUpdate (SQL);
disponer();
} catch (SQLException ex) {
System.out.println (“¡Error al agregar detalles del alumno!”);
}
}

privado vacío ComboDateActionPerformed (java.awt.event.ActionEvent evt) {
// TODO agregue su código de manejo aquí:
}

private void tfeesActionPerformed (java.awt.event.ActionEvent evt) {
// TODO agregue su código de manejo aquí:
}

/ **
* @param argumenta los argumentos de la línea de comando
* /
public static void main (String args []) {
/ * Establecer el aspecto y la sensación de Nimbus * /
//
/ * Si Nimbus (introducido en Java SE 6) no está disponible, manténgase con el aspecto predeterminado.
* Para más detalles, vea Cómo configurar la apariencia.
* /
tratar {
for (javax.swing.UIManager.LookAndFeelInfo información: javax.swing.UIManager.getInstalledLookAndFeels ()) {
if (“Nimbus” .equals (info.getName ())) {
javax.swing.UIManager.setLookAndFeel (info.getClassName ());
rotura;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger (AddStudent.class.getName ()). log (java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger (AddStudent.class.getName ()). log (java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger (AddStudent.class.getName ()). log (java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger (AddStudent.class.getName ()). log (java.util.logging.Level.SEVERE, null, ex);
}
//

/ * Crear y mostrar el formulario * /
java.awt.EventQueue.invokeLater (new Runnable () {
public void run () {
nuevo AddStudent (). setVisible (verdadero);
}
});
}

// Declaración de variables – no modificar
private javax.swing.JLabel Balance;
private javax.swing.JComboBox ComboDate;
private javax.swing.JComboBox ComboDate2;
private javax.swing.JComboBox ComboMonth;
private javax.swing.JComboBox ComboMonth2;
private javax.swing.JComboBox ComboYear;
private javax.swing.JComboBox ComboYear2;
private javax.swing.JLabel EMI;
private javax.swing.JLabel LAdmnNo;
private javax.swing.JTextField TxtBal;
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JSpinner jSpinner1;
private javax.swing.JTextField jTextField3;
private javax.swing.JTextField tCname;
privado javax.swing.JTextField tfees;
nombre privado t javax.swing.JTextField;
// Fin de la declaración de variables
}

Todos los programas se basan en la lógica.

Una parte principal de esa lógica es “if and else” (condicionales) , pero ciertamente no es la única parte. Como mínimo, están los bucles (por y mientras), estructuras de datos (matrices, cadenas, caracteres, enteros, flotantes, etc.), rutinas de E / S (printf, lectura, etc.) y bloques (las porciones de código que escribe dentro de {} en C)

Además de estos, cada lenguaje de programación tiene sus propias idiosincrasias y paradigmas (como puntero, etc. en C, Objetos y clases en C ++).

Por lo tanto, si es experto en conceptos básicos como bucles, condicionales, etc. y tiene una mentalidad lógica y de resolución de problemas clara, creo que estará mínimamente familiarizado con CUALQUIER lenguaje de programación y puede elegir un nuevo lenguaje de programación fácilmente solo aprendiendo el idiosincrasias específicas del idioma.

¡Es como decir que uno puede escribir como Shakespeare solo porque aprendió alfabeto, palabras, oraciones, párrafos! 🙂

En realidad, puedes escribir bastante código que se ejecuta incondicionalmente esp. funciones de bajo nivel que ejecutan bloques de código establecidos.

El código condicional es como un mecanismo de derivación de tren que cambia la dirección de un tren. Esto se conoce como ramificación condicional. Looping es repetición condicional.

La codificación efectiva tiene mucho más que ver, como el diseño, la eficiencia, la escalabilidad, la claridad, etc.

No.

Si y más es una parte de la lógica de negocios escrita.

Otras partes del software incluyen la interfaz de usuario y la base de datos.

Si se requiere y más en cada software para dar a los usuarios tantas opciones como podamos, para ejecutar algo basado en lo que el usuario solicita y a lo que llamamos toma de decisiones.

La pregunta es muy rara. No solo si, sino también hay otras cosas como matrices, bases de datos, GUI, archivos XML, etc.……… Pero, en verdad, también siento que, en última instancia, todos los programas son una combinación de ifs y elses PORQUE ocurre alguna condición y es por eso que tenemos que escribir código en consecuencia (pero eso es INDIRECTAMENTE). Cuando escribe una subrutina para la acción Click en VB, esa es una condición indirecta if.

If and Else son funciones básicas de elección … En la vida real, tiene la opción de tomar una decisión … y todo el código está diseñado en base a la lógica … así que si y de lo contrario, si el padre de todo el código condicional pero el código moderno también contiene diferentes tipos de estructura….